Tell me more ×
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.

From my college's day 385th I always wanted to become one of the best programmer (obviously the day 385th coz I never leared Console.WriteLine on day first ;)

Now I'm doing a job in iPhone and Android app development team. From 10 AM to 8 PM I do my job and I don't think I am the best but I know I am good at it. :)

Now I want to become sharper then ever, what's your recipe about becoming that much sharper?

How do you guys learn? By solving a particular problem? Or by taking books or articles at your end?

In short what am I supposed to do from 9 PM to 12PM to become sharper and superhero-like programmer?

share|improve this question
26  
To become a superhero, have you tried rolling in radioactive waste or getting bitten by a radioactive spider? :P – FrustratedWithFormsDesigner Mar 23 '11 at 17:21
Do software that can save one's life. – Fanatic23 Mar 23 '11 at 17:21
6  
Step 1: be awesome Step 2: win – Steve Evers Mar 23 '11 at 17:30
@guru: Would be kind enough to point out a superhero programmer. I have heard of brilliant/clever programmers. But superhero? – Simon Mar 23 '11 at 17:45
10  
@FrustratedWithFormsDesigner - but that only gives you the powers of a spider, you would have to be bitten by a radioactive Jon Skeet – Martin Beckett Mar 23 '11 at 18:32
show 7 more comments

closed as not constructive by MichaelT, Jim G., sunpech, gnat, Martijn Pieters Apr 6 at 6:33

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

6 Answers

up vote 14 down vote accepted

Help out the rest of the community is the first thing that comes into my mind. Help others on sites like SO, several forums, perhaps give talks about stuff you've done. You could also start blogging. You might think 'yeah, but I already know all that stuff I'm supposed to talk/blog about', but you're probably wrong. When writing an article or have a talk about it you need to dig even deeper into the subject, so you -really- know what you are talking about. This also helps you in the soft skills which a superhero developer should have.

If you want to do something different to broaden your horizon, you could of course help in a random open source project. There are hundreds of them, so it shouldn't be too hard to find something of your liking.

Personally I always enjoy reading a book about design patterns, different (project) methodologies or something about a new version of the framework I'm working with (.NET, SharePoint, SQL, jQuery, etc.)

share|improve this answer
@Jav_v +1 this is very good advice. – Nick Mar 23 '11 at 23:32
I'm ticking this to right answer because advice is right but I don't think that at beginning stage I can solve out problems found on stackoverflow like sites. :( BTW, how do you manage your daily routine in terms of work and studying like books/articles etc.? – Guru Mar 24 '11 at 11:54
2  
I myself am working 8 to 9 hours a day, which means I can take some free time once per week to do some 'personal' coding. Studying and writing are tasks in my calendar, just to make sure time is reserved for it. Reading blogs and stuff is done in spare time and answering questions on websites during some off time at work or home. Just make sure you don't sacrifice your personal/social life for developing. Some real off time is healthy for your body and mind. – Jan_V Mar 24 '11 at 11:59

Work with people who are better than you... Learn from them.

It's fun being a big fish in a small pond now and then, but it's easy to get lazy or develop bad practices.

By working with people who are better developers than you are, you're more likely to push yourself to improve -- learning from what works for the other team members, finding your own strengths, etc.

share|improve this answer

If you want to hone your skills, you can take up projects on the side. Project Euler might be a good start (it's a website of mathematical/programming problems), and you could also try learning new languages. Have you tried LISP? It will make you "think different" (more than Apple can, anyway).

But also... you don't really define what you need to get better at. So think for a moment: Do you want to get better at UI design? Algorithm design and programming? Better at database design or data analysis? Do you want to get better at high-level architecture and design?

share|improve this answer
1  
+1 for Project Euler – Jeff Mar 23 '11 at 17:46

Show interest in other areas of computer technology at your workplace. Taking on new responsibilities will broaden your horizon and help get you to the next level. If you stick only to what you know and are comfortable with then you won't grow much.

share|improve this answer
Hi, A recent incident with me I was appointed as iPhone developer but my team leader assigned me the job to develop the same application in Android and Blackberry too. What is your opinion, should I say yes or no? – Guru Mar 23 '11 at 18:08
1  
If you want to become a superhero, then say "yes". – Bernard Mar 23 '11 at 20:02
@Bernard: Thanks mate, although I already said yes yet wanted to confirm. But really one should not only stick to just one single technology. Technologies changes but developers are the same! :) – Guru Mar 24 '11 at 11:52
+1 For a distinct advice! – Guru Mar 24 '11 at 11:55

Zed Shaw is one of the most prolific programmers out there and he has a very simple formula for being good/superhero/whatever programmer: Programming, Motherfuckers.

share|improve this answer

I know you have already selected an answer, but I will go ahead and answer anyway.

If you want to become "super" (super/extremely good) at something, you have to put time into it. The more time you put into it the better your skill will get, and you will have more experience.

I would suggest focusing on a certain aspect of software and mastering it. This takes a lot of time, years to be precise, but with every challenge your skill will get sharper, your knowledge more stronger and your experience will grow.

Facing up to all those challenges on your own is what programming is all about. I would say - "do not aim for superhero, aim for super-fun." The only thing that you need to worry about is outgrowing yourself, leveling up you skill.

Other advices would be to balance out your programming related tasks to sharpen your skill. Take a look at the Programming Pyramid on the picture below.

One more thing, read a lot of code written by good and bad programmers. Try to recognize good and bad code. Then try to improve it. Good code is very much harder to improve, sometimes it's impossible on a given skill level. That kind of code will really clip your wings and bring you firmly to the ground. However, it really helps in the long run and makes a better programmer out of you.

programmer pyramid

Secret advice: grow a beard

Super secret advice: buy a cape

share|improve this answer

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