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.

This question already has an answer here:

Question:
Can a mere entry level programmer become a mid or senior level programmer working in a company as the only programmer without a mentor?

Background:
I was hired as an entry level programmer for a mid size company that does not do programming except for internally. I am regarded as a genius inside the company with a decent salary but after 2 years I decided I wanted to move to an actual software company. The interview processes have been extremely demoralizing because even though I have wrote intra-company enterprise applications these interviews have made me aware of how little I actually know.

share|improve this question
5  
If you're determined enough, you can be anything. Don't give up and keep interviewing and writing software. –  Bernard Apr 12 '13 at 23:18
    
Look at it as a glass half full. This way, you're not in an organization learning somebody else's bad habits. I've been where you are. This is where active participation in sites like SO can be useful, and open source projects can help you refine your design skills. You can still review the code, learn from it, and introduce your own improvements even if you never actually commit any of it. –  user414076 Apr 13 '13 at 2:07
add comment

marked as duplicate by gnat, MichaelT, Bart van Ingen Schenau, thorsten müller, Martijn Pieters Apr 13 '13 at 11:53

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.

4 Answers

up vote 5 down vote accepted

Mentors are overrated in software development.

Certainly, if you can find someone who really knows what they're doing and who is willing and has time to help you improve your programming skills, you'd be foolish not to take advantage of their help. Some organizations try hard to set up those kinds of relationships, both to help you become more productive and also to keep an eye on what you're producing.

However, I think it's much more common that people learn from a variety of sources, including:

  • teammates: not just a single mentor, but everyone you work with

  • code reviews: there's nothing like having your code (or even someone else's) picked over by a group to sharpen your sense of what's considered good and not good in your organization

  • existing code: the more time you spend maintaining other people's code, the more you'll learn how to (and how not to) write your own code

  • books: reading is fundamental

  • internet: reading blogs and sites like Programmers.SE and Stack Overflow will expose you to lots of opinions about the "right" way to do things, and you'll start to develop your own opinions

  • experience: most important; you really can't appreciate the benefits and/or drawbacks of a given idea unless you try it out; write lots and lots of code

  • friends: having some friends who are also programmers is a huge help even when they're not your "mentors" but just people to chat with

If you can learn from some or all of these sources, having a mentor is helpful but not required for you to improve your skills.

If you want to climb the corporate ladder more quickly, talk to your supervisor about what you need to improve. Make it clear that you're working hard to improve, and show them that helping you improve will be worthwhile. You may be able to take classes, go to conferences, connect with other developers in the company, etc.

share|improve this answer
add comment

Mid-level, yes though you will need significant study time of the industry you're in to know what is common. This stuff is usually picked up bit by bit by all the engineers in a company and shared amongst them. You're going to have to do the research and study of all those engineers yourself just to know and meet industry standards.

Senior-level however includes mentoring, leadership, and organizational skills you simply won't learn without teamwork.

share|improve this answer
add comment

While it is possible, I'm not sure I'd see it as that probable. Consider that if you did make the next killer application you could possibly make a lot of money but the chances of making something that will take off like that is rather small.

While you don't have a mentor at your workplace, couldn't you network with other programmers and find a mentor that way? I'd suggest that to improve your skills where you may now realize you have gaps is to reach out to others within a community and it may be worthwhile to find those groups where other programmers may frequent.

share|improve this answer
1  
I'd go so far as to say that only a truly exceptional candidate can become mid- to senior-level independently. The rest of us need professional contact with our peers to advance. And that exceptional candidate? They'll probably never be able to function in a group after getting to that level. –  Ross Patterson Apr 13 '13 at 0:45
add comment

Mentor Yourself

sometimes the only choice is to teach yourself

fortunately, the Internet makes that extraordinarily easy these days

pick the areas you want to learn about, google for tutorials, and go

for deeper dives, explore nearby university libraries for ACM and IEEE publications

share|improve this answer
add comment

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