By chrisroane
via montanaprogrammer.com
Published: Sep 12 2010 / 09:50
A common debate in our field is whether or not a college education is worth it when becoming a PHP programmer. People will throw statistics in how much more money you can make with a college degree. But is the cost of college (time + tuition) for a four year degree better than the benefits of having four years of experience in the web programming field?



Comments
henk replied ago:
A common believe among many (but not all!) PHP programmers is indeed that education is not necessary. For some reason, this believe is far less prevalent among Java, C++ of C# programmers.
harryboss replied ago:
I cant see why the language matter in this case. Then there is a difference between php and php. Consider building a complete web based multi-tierd application with security, stability, debbugability, extendability, scalability etc. etc. In that case, deep knowledge of computer system design is essential. A good palce to get that skill is in school.
henk replied ago:
Theoretically, language indeed shouldn't matter. The same principles you mentioned apply to pretty much every software system, independent of the language being used.
However, it just seems to be the case that a large majority of people who don't believe in education flock to PHP, while does who do, consider other languages. Although PHP is maybe not the most formal language, I don't think it's really the language itself that causes this distinction. It's more a matter of the existing community around said languages.
harryboss replied ago:
Its a paradox indeed, since creating good, well structured and code in PHP is way harder than the other languages mentioned (because of its non formal syntax).
But in the end, I am sure that the employer will separate the wheat from the chaff.
Chris Roane replied ago:
By going to college, you most likely will have the advantage over knowing how to create efficient and scalable code. But we all know that in the realm of web development, being a successful programmer is not solely dependent on writing this type of code. Profitability, productivity, etc...are things that are far more important when we are talking about programming small to mid-size websites, and this can only be learned through experience.
The fact of the matter is that there are no guarantees either way. I think many people go into college with the idea that their degree is going to get them a job. This may be true in some cases, but ultimately the success of the programmer is determined by the programmer. Not a sheet of paper.
harryboss replied ago:
a degree wont get you a job, sure. Other aspects play along. However, in many cases you wont even be considered for a. qualified developer job without a degree or previous work experience (catch 22). My experience is that a degree is a social thing as well. Programmers with education tend to not give non educated programmers less space
Chris Roane replied ago:
That is true, but I've also seen the opposite true. Where a college graduate expecting to earn xx amount of dollars after graduation is turned down for a job because they are asking for too much (they need to pay for student loans), while someone without a college degree is hired. In both cases, when a candidate doesn't have experience (degree or no degree), they are considered for an entry level position. This may not be true in all cases, but it is my experience over the last 10 years.
harryboss replied ago:
I don't buy that at all. But if you have that experience, I bet it differ from country to country.
Chris Roane replied ago:
Yeah, I think it even varies from area to area inside each country...at least in the US. That is why I can't say whether it is a good or bad idea for everyone to go to college in this field. In my opinion, there are multiple factors to consider.
henk replied ago:
In the Netherlands and many other Europian countries (except the UK), there is no such thing as student loans, or at least not in the way as is generally understood elsewhere. This means students don't necessarily have to ask that much.
Of course, the best programmers have an education AND experience AND have a lot of talent.
Such people are not the most common, but they definitely do exist. We have a student working for us, who is 24, has A LOT of real live working experience (works his ass off in programming related jobs next to his studies, and has set up his own company for which he does software development) and has a lot of talent. He will graduate next month. At that point he has papers and (real) experience ;)
eelmore replied ago:
A better question would be, "Does PHP even count as programming at all?"
,
chudak replied ago:
You seem to hold quite a few misconceptions, among them:
"100% of what you will learn in college will not be useful for your career."
Perhaps you mis-phrased this? Maybe you meant that NOT 100% of what you learn will be useful? Since arguably a lot of it will.
"In the field of PHP web programming, ultimately experience is king. General programming knowledge and how-to is valuable, but if you are in a production web shop and can’t get projects done in a profitable timeline, than this resume point is worthless."
Building a 5 page website for a small business, probably not going to matter. Building a large scale application like Facebook? The hobbiest programmer who valued experience over a college degree is going to find their resume at the bottom of the pile.
Chris Roane replied ago:
I simply meant that you will have to learn information in college that will not directly be useful to your career. This is not to say that it is not useful in some capacity. The quality of the education you receive in college varies greatly by which college you go to. Which is why I have a problem with blanket statements.
You might be right about applying for a job at facebook. But again, working for facebook is not the typical php programmer job. Most php programming jobs involve working in a production environment, and facebook is not a production environment like a web shop. This is what I would consider a corporate level position....which I agree, a degree will suite you well here.
In either case you learn things that you wouldn't learn going down the other path as quickly. Going to college you learn more about principle and general scalability that will take more time for a non college graduate to learn. Going the none college route, you learn about productivity and profitability much more quickly than the college graduate. And if you work at a company that has programmers who know what they are doing, they can help guide you in learning the things you missed out in college.
I am not anti-college. However, I am against blanket ideas that say that everyone should or should not go to college in this field. I've seen successful programmer's in both cases, which proves it more has to do with the programmer than it does having or not having a sheet of paper.
chudak replied ago:
Someone with no background in CS is going to have a hard time absorbing concepts that his/her mentor take for granted that they have been exposed to...like algorithms and data structures, OOP principles, networking and operating systems. Those things that you think you'll never use have come up again and again in my career when we had tough problems to solve.
Chris Roane replied ago:
I have also found this to be true. Which is why it takes a certain kind of individual to go out of their way and learn this stuff if they are not going to college.
In fact, there are areas that I acknowledge that I need to spend more time having a better grip on.
harryboss replied ago:
Still, its not always possible to go away to read a book all the time you face a new term.
The first week at my first job, I faced various tasks such as XML parsing, SQL Queries, object oriented programming, vector math, open gl 3D rendering, source control, technical writing, windows gui programming and debugging. All in a language I had no previous experience in. I was expected to know and quick get into each of these subjects - and I also succeeded with it because of a degree. But then, this was no PHP code, so that might be off topic.
henk replied ago:
Exactly, with most people having a CS education, you know there is a basic level of knowledge and a minimal common base of terminology that you can use.
It is absolutely true that someone without a CS education can be very knowledgeable and someone with a CS education can be quite stupid and ignorant. I've met a couple of guys without an education, who really taught themselves a lot of the basics of computing. Those guys however are simply very rare. Again, they do exist, but there are just not so many of them.
The majority of programmers without an education simply have picked up some very basic programming skills, just enough to get the job approximately done. Discussing with such people can be extremely tiresome. They often just don't believe things that should be common logic, like just not believing in boolean logic. How silly is that? Or just about things that are even closer to programming, like design patterns or even stuff like MVC (which you can also read about in tons of non-CS programming books).
I'm not saying that you have to throw a design pattern against every problem you encounter, but -if- you come across a situation where a pattern would perfectly apply, it's just nice if the person you're discussing with has at least heard about it.
cstrosser replied ago:
The problem with getting an education in this field is that the material is often outdated. I've done great w/o finishing college, and most employers don't care about a degree - just whether or not you can do the work.
harryboss replied ago:
It might depend on what education you refer to. An education in CSE does not focus on particular versions of specified hyped technology, but rather concepts that are valid way longer than brands and technology. What would you do the day your company decided to switch from Php to F# with totally different paradigms? An education gives the ability to adapt to new technology very fast, thats the point.
Chris Roane replied ago:
That is true, which is the main benefit I see coming from a college degree.
But the person who learns how to teach themselves these concepts outside of college, also has an advantage when picking up new languages...because they have already done this before. While a college graduate may understand the core programming principles, they may lack the self-teaching ability that is very useful in this regards. This is how I taught myself .net and C#.
cstrosser replied ago:
Let me clarify a little... when I say education, I'm not referring to certificate courses, I'm referring to two and four year schools.
cstrosser replied ago:
To be honest, the other developers I've come across who have had a full education are no better off in this realm. In fact, some of them are worse off. This sounds practical on paper, but it does not appear to transfer into real life.
Voters For This Link (11)
Voters Against This Link (0)