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, no registration required.

I like many others have spent a few of my High School years teaching myself software development and various languages.

  • I'm fluent in C++/C#
  • Have a fairly solid understanding of Computer Science and Computing Techniques.
  • I don't have any worthy projects to display because I have a bad habit of stopping them before they're presentable in pursuit of newer, more exciting projects; But if you asked me to sit down and solve a problem I could do it easy.

Is there any way to get formal recognition of all the time I've spent watching online lectures / tutorials, actually coding, and researching?

It would be nice to have something I can actually put on my college application!
I just want to show that I havn't just been sitting around playing Video-Games all day.

share|improve this question

closed as off-topic by MichaelT, durron597, ratchet freak, Snowman, GlenH7 Apr 10 at 15:18

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, durron597, ratchet freak, Snowman, GlenH7
If this question can be reworded to fit the rules in the help center, please edit the question.

There are programming certifications (such as Microsoft certifications for C#), although personal projects are probably more valuable; the bad habit of yours is something I'd try to get rid off - also because actually getting a project done teaches one more than just starting it and developing it while still within the excitement phase ;) –  Konrad Morawski Feb 25 '12 at 12:07
Woah woah, wait up... "I don't have any worthy projects to display because I have a bad habit of stopping them " CLEARS THROAT - Umm, hmmm. OK OK, so I'm a tad confused at this. What's an example of this? Switching from what kind of project to what? –  Adel Feb 25 '12 at 14:18
You can probably take the ETS College Board CS test, even tho you're young, as proof - ets.org/gre/subject/about/content/computer_science –  Adel Feb 25 '12 at 14:27
"because I have a bad habit of stopping them before they're presentable in pursuit of newer, more exciting projects;" Learn to overcome this problem. This will both give you projects that you can share for recognition and will show that you can finish a project. There are far more talented devs that can solve interesting problems than talented devs that can finish out a project and polish up the boring edges of things. It's a problem I've struggled with, and something that would be very helpful for future jobs. –  Jamie F Feb 25 '12 at 17:55
"I don't have any worthy projects to display because I have a bad habit of stopping them before they're presentable in pursuit of newer, more exciting projects" It is extremely important to finish these projects because without them you have absolutely nothing to demonstrate your ability. I guess this is why you want another route to recognition? Demonstrate that you can finish projects, this in itself will be a huge plus point to any potential employer and be a massive boost to your pride! –  Gary Willoughby Feb 25 '12 at 19:49

10 Answers 10

I'm not too keen on the whole concept of formal recognition. I suppose you could go out and get a certification from some recognized certification provider but those sorts of documents are not always an indicator of actual competence. From what I gather they are often in the Microsoft case a necessary evil in order for the company to achieve Microsoft partnerships, not really a benefit for the holder of the certificate personally. They're also expensive.

If I were you I'd work on worth projects to display. They do not really need to be perfectly presentable. I got my first job in game development from a racing game that I developed at home which didn't even have a car to race around with. I used a model of a house as a car, but it showed enthusiasm and a genuine interest to learn. None of the stuff I used for that demo were ever taught to me in school. Your personal projects need not be perfect - just show them off anyway!

Your greatest strength is probably your enthusiasm, willingness to learn and ability to do so. If you can convey those things to a prospective employer or college they ought to be able to see through the lack of formalia.

The best programmers I've seen to date are the self-taught ones who really love programming.

share|improve this answer
-1 -- an agreeable ideal, but doesn't answer the question. –  Rei Miyasaka Feb 25 '12 at 13:18
I do say that he could get a certification for it. In what way isn't that an answer? –  Dervall Feb 25 '12 at 13:49

I began as self-taught, but am now pursuing an informatics degree. I think that's essential, as programmers who are both self-taught and have formal education usually become better that people who've only gone one way or the other.

I think your most immediate concern should be to learn how to finish projects properly. Get a github account and start writing open source code, write docs and get something out there, formal recognition might be important in some contexts, but nothing beats a github account full of useful stuff.

If you're having trouble getting projects to a finished state, I would advise you to set yourself small achievable goal. Start small. What is the smallest possible functionality your app/library needs to have? Do that first, get it working, document it and only then start adding features.

share|improve this answer

I don't have any worthy projects to display because I have a bad habit of stopping them before they're presentable in pursuit of newer, more exciting projects; But if you asked me to sit down and solve a problem I could do it easy.

At least in my opinion, the point of personal projects was never to solve a problem. I never wrote a rendering system to make a game or an interpreter to make a language, I did it to further myself. If you achieved that, then those projects served their purpose. If a project isn't causing you to grow as a programmer, then it's a waste of time continuing on it. It's not a bad thing to cut projects which are no longer stimulating growth.

Of course, it would be better if you had a complete(ish) project to show to employers, since that's a lot easier to talk about. All I'm saying is that you might be able to get further than you think with your existing projects.

share|improve this answer
Yes, as soon as I've figured out how to make something and have designed it, the excitement just starts dying out. It's like once the hard part is over there's no point in finishing. =( –  Griffin Feb 26 '12 at 0:46
you're fooling yourself in saying that were "the hard part". it's quite easy to design a space elevator; making it work is a different thing –  Javier Feb 26 '12 at 3:55

There is an entire industry out there that will take your money and in return provide you with a certificate that "recognizes" your self-taught knowledge. The much easier thing to do would be to complete a project and save the money.

share|improve this answer
Are these certificates recognized by the people who look at my college applications? Where would I look to get these certificates? –  Griffin Feb 26 '12 at 0:48

I'd say Open-Source; as in, produce awesome OS work and let the democratic process work. If you're good and we download your code, hey that's proof in itself!

But back to the title.. I'd argue that everyone worth their salt is mostly self-taught anyway. A two-year degree though, is pretty attainable. At least get that. Then Certs afterward.

share|improve this answer

"It would be nice to have something I can actually put on my college application!"

No reputable college will give you any recognition for independent studies before you enroll, unless you take their placement examination or one of a small set of formal exams (e.g., the Advanced Placement Computer Science exam). If you can pass those, you can usually get an exemption from taking the equivalent college courses, but not necessarily the credit you would get from actually passing them at college.

share|improve this answer
That said, sometimes you can talk to the undergraduate advisors and/or professors and get them to sign off on you skipping over low-level classes you already understand, for the sole purpose of moving on to later classes. Do not expect any GPA points or credits for skipped classes; you won't get them. I did this myself and skipped out some basic programming and assembly language classes. I had been writing my own assembly for the Mac for a year (the class used the Mac), knew Pascal up to linked lists, and knew C++, so my first class was Data Structures in C++. Saved me four classes. –  Mike DeSimone Feb 26 '12 at 1:21
+1: My point exactly. Get the "uninteresting" stuff knocked off the list and you can spend those precious credit-hours learning more-interesting things instead. –  Ross Patterson Feb 26 '12 at 15:48
Also, don't forget that most colleges, especially the larger ones, have plenty of motive to get you a degree and out of there in four years, so you're not taking space they could fill with a freshman. –  Mike DeSimone Feb 26 '12 at 16:27

I don't have any worthy projects to display because I have a bad habit of stopping them before they're presentable in pursuit of newer, more exciting projects; But if you asked me to sit down and solve a problem I could do it easy.

Saying that you could do something and actually doing it are two completely different things, and I bet you're very aware of that at some level. It's frustrating to feel like you know something but not have anything to show for it. You need to get something done. Here are some tips for getting there:

  • Start very small. Pick a simple problem that you can solve in a short time, maybe a few hours, and solve it.

  • Resist the temptation to write a completely generalized, perfectly architected, highly scalable framework for solving every possible variant of the problem you've picked. It's easy to get carried away with ideas to make something better before you've made anything at all, and before you know it you've got a project that's so big that it's easier to start a different project than to finish the one you've already started. There's a saying that applies here: Done is better than perfect.

  • You can always make it better later.

  • Decide at the outset that you're not going to start any other projects until this one is done.

  • Before you start writing any code, write down a simple project statement. Explain the problem you're going to solve, how you plan to solve it, and what you expect to have when the project is done. Keep it short -- just a few paragraphs. This will help you stay on track, and it also defines what "done" means. Later, it'll be a handy reminder of what you did.

  • Be tenacious. Don't let anything stop you from finishing. If you get stuck, ask for help. If you made a bad decision at some point, fix it.

Finally, remember to be humble. Claiming to have a "solid understanding" of a field as big as computer science reveals more about what you don't know than what you do.

share|improve this answer

If you aim for small to medium sized companies, gather a list of urls that shows that you know your stuff. Github projects, previous projects and workplaces, your blog with insightful posts etc.

If you aim for large companies, get a degree.

share|improve this answer
I aim to get into college =| –  Griffin Feb 26 '12 at 0:49

Even if you are quite proficient in software dev, why are you discarding getting a degree? There are many organizations that provide certificates, both if you want company-oriented (for instance MS, Oracle) or neutral (brainbench.com). But none of them will be comparable to a college degree of a good institution.

It may seem a waste of time at first, but consider that the breadth of knowledge you'll be exposed to is much more than any self-learner could find for himself. I'm a self-learner too, and I recognize that one of the drawbacks of the approach is that you learn things as-you-need, so there's a lack of learning in the fundamentals area. Also there are many things you should learn BEFORE the problem to which they are applicable arises, otherwise you wouldn't have a way to know such solutions existed. Consider that a big part of the service a good university provides is to curate the material they will teach you. Teaching itself comes second.

Furthermore, you have a big advantage: the knowledge you already have will mean you'll have an easy time in many things while the other students would be sweating to do well.

share|improve this answer
I'm not discarding getting a degree. I stated that I wanted something to put on my college application to show that I'm not just another kid sitting around playing Video-Games all day. –  Griffin Feb 26 '12 at 0:34

Does formal recognition even really matter? I mean, sure it can help in some cases. But really I think ability and work speak for themselves. If I were you, I think I would focus on bullet #3 far more than getting recognition. Recognition is nothing more than promise of good work. Worthy projects are proof.

I was actually in your position a couple months ago when I submitted my college apps. I could say that nothing more easily demonstrates your ability and passion for code than a link to a project on a resume. During my interviews, I found that being self taught can be quite a nice bonus. However, being self-taught can lack the credibility formal recognition has. This, although, can easily be corrected by pointing to a completed or at least noteworthy project.

In short, work on finishing your personal projects. Those are the most valuable assets you can have. Any certification can be dwarfed. Remember, colleges are looking for things that set you apart. Anyone can pick up arrays of certifications, but your projects are your own.

share|improve this answer

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