Learning programming in College is useless

Learning programming in College is useless
0

#1

Hello everyone, I’d like to just share my experience of learning coding at a traditional college program (i.e. in the classroom). First off, let me provide some background…

I’ve been learning to code/develop for the past 7 months or so on my own (FCC playing a major role in my learning). I love teaching myself online because I can learn at my own pace, learn what I need/want, and do it all for very cheap or free! I applied to some jobs at the end of summer with my limited experience but did not get an interview. So I decided I would enroll in a 1-year co-op college program while continuing to teach myself online (so when I go to apply for jobs again, I can be certain to land a job). Well, here I am right now 2/3 done my first semester, and what a disaster (in terms of learning) it has been…

The only benefit I see for this program is that it guarantees me a paid co-op job (in case I still was not ready for a full-time, non-co-op job yet) and it looks good to have a college degree on my resume.

In college, our coding skills are tested via arbitrary, trivial methods, like multiple-choice questionnaires (i.e. “what does the link tag do?” type questions). This is the most unorthodox and useless way to gauge skill in coding. Most of these students can answer these questions, but they cannot build an app or design a website, so what good does a high mark on this test do anyway?

In one course, we wasted 3 classes (7-9 hours) because the instructor was having difficulty getting everyone (with their different operating systems, versions, and level of experience) to set up a local PHP and WordPress environment (meanwhile, this is something I taught myself from a short you-tube video, for free). In another class, we are learning only HTML and CSS, and after 3-4 months we are expected to build an ugly, non-response static website, and nothing about how we can even host it online (this is something I already knew how to do before entering this program).

There is so much more I can say about why college is a waste of time and money for learning web development and coding, but this post is already getting long enough :stuck_out_tongue:

These two you-tube videos linked below, if you care to watch (and if you haven’t already seen them) sum up the horrible state our educational system is currently in:

  1. https://www.youtube.com/watch?v=-MTRxRO5SRA
  2. https://www.youtube.com/watch?v=dqTTojTija8

I’d like to hear your thoughts on learning to code/program in a college program vs. learning online (at a place like FCC).


#2

Hey Twinbird24,

I totally agree with you. I remembered a Computer Science class where we spent a whole class period learning how to open a file and close it using Python. It was literally 2-3 lines of code to do this and that was it. It was that moment when I realized I was paying hundreds of dollars for something I could teach myself in 5 minutes. Also, they didn’t allow us to use text editors on the exams, so we had to actually solve the challenges by writing the code on paper with correct syntax. Those countless eraser sounds echo through the class. So, I dropped out and started teaching myself and I can say that in about a year, I’ve taught myself about 2 year’s worth of what they would teach in a college.


#3

LOL. Dude, I’m in CSE and a junior and guess what we’re doing?? Javascript? Python? Java (already di that)? NOOOOOOO Assembly y86!! And ANSI C. REgister this Register that…processor…I actually fell asleep. Well, time to go study my data structures! Only useful thing thus far. Im taking my first project course next semester so maybe we’ll actually start doing some real-world stuff. Oddly enough is that the 4th project is none other than building a calculator!!! LOL. I’ve done that already! And the course requires that we build these projects in groups of 4 or 5! Only diff is that it’s in ruby. The problem with schools other than MIT and Stanford, is that you actually don’t start building anything useful until Junior year projects and some of the best advice I’ve received from a Senior who graduated with a job is that, “Teach yourself outside of class”. In summary, school takes too long to get to the point. But a degree does wonders! Can’t tell u how fun it is converting floating point numbers to binary by hand


#4

I’m sorry to hear that you’ve had such a negative experience. While I’m sure it’s been incredibly frustrating, I don’t think it quite warrants your broader assertion. For many students (including myself), the time and cost of a degree are well placed investments. There is, of course a whole spectrum of quality when it comes to college courses any any number of reasons why a traditional education path might not be a good fit for an individual.

One thing to keep in mind is that the purpose of a Computer Science degree is not to teach you languages. There will be a couple How To Program in X classes for underclassmen, but they really just serve to get new coders familiar with how programming languages work. You’re not going to spend 4 years being taught how to write programs, but how programs work, how computers work, how languages themselves are implemented. Once you’ve been properly versed on programming language families, the rest is just syntax. As one of my professors loved to say, “I’m not going to spend more time on that. You all know how to read documentation.” You take high level math classes to learn how to approach high-level math problems. You’ll learn about chip architecture so you are able to write code to optimize limited resources. You’ll look at the insides of an operating system. You’ll learn theory in ass-kicking classes that don’t even require turning a computer on.

Maybe all you want is some skills training, and that’s fine. It’s just not the point of a college degree.


#5

If you are just talking about programming (for why college is useless), then I would agree. College is not a good place for that.

But Computer science != programming. Programming is just a tool (and a very big one) used to do computer science. For some reason, CS degrees became the traditional route to programming jobs AND computer science jobs. But there is a difference. If you were to draw a Venn diagram of CS and programming, you would have 2 huge circles with a small amount of overlap, but they would be distinctly different.

CS degrees usually teach you about a 1 year of programming, and then you use programming as a tool to do a bunch of computer science when you get deep in your major. One analogy I read was that of an astronomer. An astronomer does astronomy, which is a science. He/she learns to use telescopes and computers and cameras, but the telescopes and cameras are not astronomy. They are the tools of astronomy. Programming is the tool of CS. Unfortunately industry has exploded with the amount of programming environments so there is no conceivable way for a CS degree to cover the entirety of programming.


#6

I agree with you completely, ArielLeslie and DWAbrego! I’ve already graduated from university myself, and I’m currently in college now, so I can understand the difference between a university CS degree and a college diploma/degree. I wasn’t referring to university CS degrees in my original post :stuck_out_tongue:

I’m not sure if it’s different elsewhere in the world, but in Ontario, a college is a place for vocational education and is almost always less rigorous in terms of academic workload when compared to a university program. In highschool our classes are split up into a few categories, “university level” and “college level” are two of those categories, and the “university level” classes were always more difficult.


#7

Ah! That would explain some of the disagreement. In the US, “college” and “university” are more or less synonymous and “college” is the more general term. (For example you “go to college” instead of “go to university”). We would call an Ontario (Ontarian?) college a “vocational school” or a “technical school”. I think that the massive rise of coding bootcamps are evidence that these programs don’t offer enough for programming job preparedness. :slight_smile:


#8

ANother thing is that I think most schools should also offer Software Enginerring Degrees.If I knew the difference back when I started I would’ve said…um…CS is not what I want to do.


#9

As the discipline matures, I’m sure we’ll start seeing more targeted degrees.


#10

learning programming in college isn’t useless. It is however, handicapped.

I went to college for a computer science degree, at University of Nebraska-Lincoln, a decent college. I dropped out after a 3.9 gpa and 2 1/2 years of hard work to learn on my own for 10% of the cost. It, like any other college outside of a few elite schools (standord, carnege m, MIT, caltech, etc…) has the same issue. They are trying to teach computer science ( a math discipline) to people who want to learn software engineering/development. Schools take forever to change curriculum, courses, standards and more. By the time they actually pick the right thing to teach and get kids to enroll, it’s become obsolete and something new and great has popped up. It’s why up until recently, Java was the language all first/second year comp-sci students took, with python only recently overtaking it in public universities.

You can learn to program anywhere, the mistake is students thinking they can learn to program in college( they can do so for free, outside of a university and learn at a better pace) and for universities selling to kids the idea that by getting a computer science degree, they’ll be great at making software.

The other major issue is colleges focus, rightly so, focus on academic environments and theory/principles. In a typical 4 year CS degree, you may not build anything even remotely real until your junior year, to summarize, you don’t build enough stuff in college, which is what the workforce needs you to do. Instead, it’s focused on theory and ideas, not so much of the ‘implementation’.

my last point i can’t stress enough, from my own experience, too many try to get a computer science degree from a 4 year institution, when what they really want is to be a software engineer/developer, which you can learn from a multitude of other places, for almost nothing, or boot camps, if thats your thing, which cost almost as much. Computer Science is for a deep, low level understanding of how computers work, as well as mathematics, thus why languages like c/c++ and java are taught.


#11

Im in the situation where Im enrolled in a CS program and I want to be a Software Engineer. We are currently doing computer origination stuff and man is it dry, and hard! I really dropped he ball on this one. Meanwhile , my buddy who wants to do research when he graduates, is loving it. I liked your input


#12

thanks @EddieCornelious


#13

Even if you never use Assembly and/or C again, understanding why they’re used, along with the purpose of registers, is one of the biggest essentials in programming, so I wouldn’t recommend falling asleep. :wink: Lots of software today is still written in either or both languages, ranging from full operating systems, to communications software, to device drivers, etc…

And having an understanding of how the CPU works will help you program in any language, even in something super high-level like JavaScript. I wouldn’t want to see the likely terribly-organized code that a self-taught, uneducated JavaScript programmer would write…


#14

I’m sorry, but aren’t most people learning here trying to become self taught JavaScript developers? Self-taught doesn’t necessarily equate to bad. I knew plenty of CS/CE majors who didn’t have the faintest clue how to write decent code. I’m only novice/intermediate level self taught, and I know a fair bit more than some with a traditional degree.

I think it would be more accurate to say it depends on the person and their desire to learn, not the route taken try get there. That being said, having an experienced instructor does sometimes give the traditional students somewhat of an advantage.


#15

Yes, I know the majority of people on FCC are likely self-taught using the curriculum and other resources, and I agree that self-taught doesn’t mean bad either. But I’d say that anyone going the self-taught route completely (with no formal “secondary” education via college/university), also has a more difficult route because he (or she) has to put in the additional time/effort to learn things that are normally taught in a college/university.

Take for example the subject of data structures & algorithms, which I think almost everyone would agree benefits programmers of any type. These subjects are standard for almost every single computer science curriculum in the world. But I’d ask how many self-taught programmers here have learned data structures & algorithms? If I had to guess, I’d guess not that many, because it probably doesn’t seem very important, but it is.

What I’m trying to say is that when someone is going the self-taught route, learning “programming” isn’t the only thing that’s important. It just tends to be the easiest, because of the proliferation of tutorials and MOOCs on the Internet today. But I’d encourage those that are going this route to learn as much info as possible about as many topics as possible, from as many sources as possible, because if there’s one thing that I’ve seen self-taught programmers tend to lack, it’s breadth of knowledge, and just knowing a “language” isn’t all that useful if you don’t know the limits of the computer or how to think like a “computer scientist”.

Nothing wrong with going the self-taught route at all, but anyone who’s doing that and isn’t teaching themselves at least a little bit about data structures, algorithms, operating systems, and discrete math is simply cheating themselves of a proper education in “computer science 101” and no offense, but shouldn’t really be calling themselves a programmer either.


#16

I’m not sure if people self-teaching themselves are taking a more difficult route. In fact, where I’m currently enrolled I have to do quite the opposite of what you mention, and rely on self-teaching myself to learn the things that the college program does not teach, or does not teach properly (after all, it’s only a 1 year program, and there is so much to learn in this field, relying solely on my degree to try to land a job would be a mistake on my part). According to the 2016 Stack Overflow Survey, the majority of people in this industry are at least partly self-taught.


#17

the thing is, in college they got no time to teach you how to be a good coder, they must teach you how to think, that is the thing internet does not teach u so easy, coding, u can learn how to code in 1 year, and get rly good at it if u ask me, i am in the 1st year of computer eng. and the last year projects and subjects are piece of cake in terms of coding skills for me.

the thing is, i learn a lot of new ways of thinking in the university, stuff that maybe i would never learn, in terms of coding in papper i quite find it stupid and is simply crap because u need to memorize stuff that makes no sense, but if u rly think about it, it makes some sense.

what is the first thing u do when u get a code assignment ? u go right into the code, cowboy coding, i do it myself all the time!!!

but now at least i am gradually going to paper first doing diagrams, why ? because i am training for papper tests, and in papper tests i cannot not debug logical problems, so i need to struture it well

So the core ideia i want to share with u is, u will not learn how to be a good coder in the university, so i suggest u code outside of class as u are doing now to learn how to code for real! don’t be like some dudes i know that got a degree, and cannot code decently
Take the most of what u learn there, is without a doubt very valuable, and the teachers can boost your skills if u know what to ask, but be mindfull, there you will not learn how to code like a pro, for that u got FFC eheh :slight_smile:


#18

Unfortunately this is something that applies in almost all the jobs (yes even doctors ), and not only about programming, you have mention two facts:
First, companies follow stereotypes and most of the time will not hire someone that it says that he knows but doesn’t have diploma and proven experience in the field.

Second, You don’t learn from college,university etc actually most of the knowledge we gain is by doing and you are doing things if you like it much or because you must earn your salary. Nowadays is easy to learn by yourself alone because there are opensource and free information on the net (something that it didn’t work before 15-20 years, people at 30s or more know that very well) the only thing that you must follow is a schedule if one wants to be successful. .


#19

The fact that he is a self taught programmer doesn’t guarantee poor organized statements. Perhaps he is more educated in the world of programming than you are (just saying). Am in a university, doing well with digital electronics,object oriented analysis and design, Operating systems, and C which am being taught using a PDF downloaded from an online university. If i want i can go download it and teach myself. But since i want the degree (only to make my mom happy) i cant. Am a self taught programmer, i write codes more than any one in my class not because i read a lot but because they still believe that they will learn programming in class. Right now, we’ve been taught python, guess what, only data types. And no one can attempt to write a complete python program that can execute real life sh*t. Only a basic line of code like a code for flight reservation which most of them copied online. So who is good, a CS degree student who sits in a class of 140 learning projected PDF ‘in the name of a CPU in theory’ waiting to copy open source codes and submit them as an assignment in order to get a first class OR a self taught student who sees windows of opportunity and takes a leap of faith to learn more in order to achieve his/her purpose for life??? Answer yourself. Be real.


#20

Everyone has their opinions…

I started uni this year, and I have to say… The way they give grades and all of that is bad, yes, but I’ve actually learned some new things there. Fundamental and important concepts and rules of HTML, CSS, JavaScript, SQL and relational databases, etc, that I didn’t even know existed because I’ve never taken an online course where they teach me this kind of theory.

When I started learning these things at uni, at first I thought that it was a waste of time.
Now I understand why they teach me these core concepts, and I truly think that it will make me a better developer.
Even maths I’m enjoying! When I was younger I used to hate it.

And I can’t wait to start the Introduction to Computer Science part, which will be next month.