Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

This question already has an answer here:

I'm 16-years old, and due to being placed in accelerated programs during my whole academic career, I just finished high school over the holiday season. For the past year or so I've been teaching myself web development (front-end, more specifically), and want to go into a career in the field. I have a front-end internship all lined up for the summer (some places don't offer them year-round, I guess), but I want to continue learning between these two periods. More specifically, I want to learn some server-side development so I can understand the interconnection between the front-end and back-end better.

My question is, would taking on a programming certification program at my local community college teach me anything, or is the information too outdated to be relevant whatsoever? PHP is the server-side language covered in the certificate (it also covers JS and CSS). I feel like in self-teaching myself I may have skipped over some fundamentals of JavaScript, and I'd really like to have a solid understanding of the language from both a syntax and philosophical perspective (i.e. understanding advantages, distadvantages, etc).

Edit: I've been building a portfolio, and am considering skipping going for a degree altogether. I just want to do this for self-improvement.

share|improve this question

marked as duplicate by Yannis Mar 2 '13 at 6:39

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

Please don't do anything with PHP if you want to lean to program properly. It's powerful but looks like a cat thrown in a mixer. me.veekun.com/blog/2012/04/09/php-a-fractal-of-bad-design –  jgauffin Jan 18 '13 at 8:05
Check whether a local university would allow you to visit lectures, and if they do, find something about fundamental CS. It will help you immensely in the long run and help you decide whether you really like programming. Idk if a university in your residence would allow you such a 'frivolity', but in my local university, lectures are open and professors enjoy having bright high-schoolers around. –  K.Steff Jan 18 '13 at 11:24
I'd say it would teach you things, but not necessarily the things you think it would teach you. –  Jennifer S Jan 18 '13 at 13:42
To add to what jgauffin is referencing, is Php was designed for developers to basically ignore the bad habits they've developed. For instance, php ignores certain structures. Rather then declare a variable and assign the value; php just lets the variable have usage without ever defining it. As one example. –  Greg Jan 18 '13 at 21:38

6 Answers 6

"Certification" programs are very different than more traditional forms of education, such as advance high school classes or college courses. They emphasize specific, narrow fields of study over broad, fundamental understanding, as well as favor rapidity over thoroughness. Such courses generally teach you one specific system in detail, such as a particular network protocol, or a certain company's proprietary system. They have their uses if you really want a job that requires that very specific skill, or otherwise want a boost in that area for some reason. However, they are not a substitute for a more in-depth education.

Programming is a science where you need to know the fundamentals. You may THINK you don't - you may think they you know everything you need to know in order to be practical and able in a rather short time - but this is a dangerous illusion, and it is common. Basic programming necessary to do basic things is actually very fast and easy to learn - good programming, however, requires intimate knowledge on the subject. In college, the first semester or two will teach you programming, and the other seven or eight will teach you how to use it appropriately.

share|improve this answer
+1… but the essence of programming is intuitive enough that what's "taught" in the first semester or two, or indeed with a programming certificate, has more to do with discovering one's latent creative ability than imparting any knowledge. Curricula that spend too much time on "practical" work are likely to be pabulum. A self-motivated student like the OP doesn't need that. –  Potatoswatter Jan 18 '13 at 8:40
Some of them doesn't even "educate" anything, they just test if you know something in a specific field. –  K.. Jan 18 '13 at 9:51

If you know how to study, then you can learn to program from your own motivation.

Skipping a university degree would be a huge mistake. I taught myself to program in my early teens and started getting paid when I was 16. (That was a valuable, if sometimes painful, experience.) In university, I wasn't interested in taking redundant classes. I signed up for Computer Engineering, skipped the programming classes by taking the final exams for "proficiency credit," and graduated early. That left electrical engineering courses, which were fascinating but I haven't put to as much use, and general education/distribution requirements, which are incredibly insightful and valuable in life if you pick good ones.

So from my experience, my advice is this:

  1. Use your currently distinctive talents to be a wunderkind to some good folks. Do work, get real-life experience and respect. A certificate course would just delay this and make you less special.
  2. When you're 17 or 18, go to university with everyone else your age. Rather than focus on learning job skills, try to answer the pressing questions you discovered in step 1.
  3. Never get bored. Stop school and work, return to school as desired. But when you go to school, do it properly and don't waste time and money on things that real life will pay you to learn. Or on topics that are so well covered by Google, Wikipedia, and StackOverflow.
share|improve this answer

Well, it depends A LOT on who provides the certification. For a given language and development environment, if it's the creator of that language/devEnviron that provides the certification then it's usually useful. If said certif is provided by some 3rd party entity, chances are it's bad. This statement is only based on my experience (with Java and JavaScript mostly).

I think the reason why this is so is because, on the one hand, the entity making a language has an interest in making good and up to date trainings, as this will popularize the language and spread it around. However when some 3rd party entity does it, it's usually just so that they can make a quick buck on the back of something that's popular and/or trendy at the moment.

So yeah, if your favorite language / development platform has trainings provided by their creators, look them up at least, chances are they are very good. For example the (formerly Sun and now) Oracle Java certifications are quite decent and real-wordly, while at the same time being difficult enough to be challenging.

Also, another good source of training and learning are books. There are a few publishers out there who constantly put out good books on various software development languages or technologies, etc. I'm not gonna name names, but just look them up on Amazon and on this site and you'll find them. At any rate, as far as books go, if you're just starting with a certain language, the best book will be the one written by the creator(s) of that language. Of course not all languages have such a book, but most do.

And as first server-side languages to explore, my suggestion (and this is totally a personal choice so take this advice with a huge grain of salt) is Java and/or Scala and/or C#. They are fairly well made languages, they are quite wide-spread and they have a pretty big community.

share|improve this answer

The answer to your question; is up to you.

A degree is a curriculum built around a subject; the core is to achieve and build substantial knowledge within that field.

Where a Certificate can be achieved by no schooling; simply self teaching yourself. However it is designed to arise competency on a particular subject. An example would be a CCNA; this is an IT Cert that is designed to show a company you are entry level competent on the subject and field.

However they both server a purpose and niche. However, technology no matter the path or field will always require additional learning to comprehend the subject. The internet, college, forums, books, and so on. The goal should be the knowledge it requires.

One thing I've noticed, the more the industry grows the more complex you have to learn something. For instance you may become quite familiar with WCF but WCF is so broad and complex; though the basics are the same the desired result of efficiency may require time to truly become proficient.

I'm a self educator, I've taught myself almost everything I know. My education has been peers, community, and usually books. As in my case I excel faster then most peers in a classroom; but what works for me may not work for you.

Hopefully that helps. I'll say this, programming like Southpaw stated is complex. Especially if you start to go into architecture. These patterns and abstraction techniques become complex quickly; so a solid understanding of the fundamentals will truly help you. As programming is as much theory as it is doing.

share|improve this answer

The answer to your question like many other people have answered is "It depends".

If you are already familiar with the material from self teaching, you may pick up only a couple of details that you were unaware of before.

One thing that a certification does give over self-teaching is a record of the various 'trainings' that you have done. This can help demonstrate that you are more likely to really have the skills that you are claiming to have on your resume. I will often try to take either a free or continuing education program for the various technologies that I am working in. This helps keep my skills up-to-date and to demonstrate to present/future employers that I am trying to improve my skill set.

share|improve this answer

I would say apply for financial aid get the courses you need and even if you know most of the stuff they are going to teach you , you will have a better resume to show to get into anywhere. And you might learn things that you didn't even know about programming and other things of that sort

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.