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.

Although I consider myself not much experienced, I keep landing in jobs as the leader somehow (in the current one I am tech director of the company, in a previous one I was the R&D head).

I understand why this happen (I have a certain specific set of skills, and I use some uncommon programming languages), my issue is: I cannot find a mentor...

I know there must be stuff to me learn, and I notice as I work over the years that I am slowly learning more and more, but I believe that there are some way to get better much faster than just coding...

So, how I improve when there are no other person in the company to teach me, or to me read their code? (or fix their code even...)

I think I am beyond books, but way below a "master" level, so I don't know where to learn more.

share|improve this question
    
Don't give up on working with a mentor. It can make a big difference and open many doors. –  DeveloperDon Sep 22 '12 at 6:31
1  
If there's a activity related to your job that scares you or makes you nervous, that's a good sign that you can learn from it. Have you given presentations at international conferences? Have you started your own open-source project? Have you started your own company? There are many more... –  Marco Sep 25 '12 at 20:57
    
I have started my own company (more than once actually), and I got invited to speak in some international conferences (although all of them on my own country). :) And yes, there are some stuff that I avoid... But some of that I will always avoid, others, I will learn in time :) –  speeder Sep 25 '12 at 21:56
    
this site and its' sister sites can make for a reasonable mentor if you can't find a single human to do the job –  LRE Sep 25 '12 at 23:09
add comment

9 Answers

up vote 6 down vote accepted

What about:

  • Advanced books
  • Users Groups
  • Conferences

Check out also answers to How to Really Master a Programming Language

share|improve this answer
add comment

my issue is: I cannot find a mentor... I think I am beyond books, but way below a "master" level, so I don't know where to learn more.

In what area? Do you want to improve your programming skills, your software engineering skills, your project management skills, something else? You didn't specify in your question.

You are not beyond books if you've learned to program / engineer software projects / manage a project on your own. You also are not beyond going back to school. Going back to school for an advanced degree, or at least taking some graduate level classes is one option you should not rule out. What area? That depends on what you want to improve, where you see your career. There's a lot to be said for getting an MBA, for example. People who are savvy in both a technical and business sense are worth a lot. A whole lot. A few of my former coworkers went for an MBA. I don't see them often because when they aren't working they're off to some tropical paradise. Or a safari. Or a weekend trip to the Alps. Or a summer ski trip to South America.

Another option is to join a technical society in a field where you have expertise but still want to improve. Yet another is to get your employer to send you to some boondoggle conference where you can learn and network.

share|improve this answer
add comment

Mentoring Can Be Cross Functional

Mentors don't always need to be experts in what you are focused on. If you use an unusual programming language, that still leaves about 99 non-language topics in software development that you could be coached in. Some of my recent mentors have been involved in business development, hardware, or systems engineering, even though I am primarily involved in software.

Many Kinds of People Can Be Your Mentor

A good thing to look for is someone who is now where you would like to be in five years. A mentor like this is not always available, so other alternative include a sage who has way more experience, but might not be in a formal leadership role anymore, a reverse mentor who is less experienced (or heaven-forbid, younger) but has perspectives on tools and techniques that can be of benefit.

Is Your Mentor Also Your Sponsor?

In addition to mentors, sometimes it is critical to have a sponsor. If you are trying to move up in an organization, if you have a mentor who gives great advice but does not influence your chain of command in your favor, you may be disadvantages relative to someone who has a mentor who sponsors them as the lead, project owner, or manager of a project that earns them a more influential role or a promotion.

Cross Company Mentors and Networking

If you are already the tech director, you may need to look outside your company for your mentor. There is strength in numbers, so networking with many people in a shallow way can be surprisingly valuable. I have generally thought that to be valuable, your engagement with other professionals needed to have the depth that comes from working together or extensive, frequent, or lengthy association.

How Big is Your Pond?

You mention that you have been R & D head and tech director, but you don't feel like you are that experienced. Confession is good for the soul, if not the reputation. I have a similar confession.

At one point, I considered my career to have been divided into two parts. In the first, I worked on a lot of teams where I was either the only software developer or the developer with the most college. The second started when I hired on with a Fortune 100 company and worked with a distinctly higher grade of developer. The contrast was essentially like being a big fish in a small pond to being a small fish in a big pond.

Trading Up

Making the change from small independent companies meant that I had much less status in the organization. But there still was some status. Developers were still valued both with higher pay and a fairly high degree of control over the work. I could also influence fellow team members (although not from the top). There were a lot of role models. Having plenty of competition forced me to toughen up technically and in understanding how what I did provided value to the organization and my teams.

I have previously ignored my gut instinct about roles and mentors and paid a price. Intuition is sometimes a feeling that comes out of a synthesis of experience. My vote would be that if it feels wrong, it probably is wrong and deserves attentive investigation. It sounds like you are concerned about your experience and lack of a mentor, explore your options.

Would you perhaps find growth, satisfaction, and other benefits by migrating to a bigger, more aggressive company? Bigger is not always better, but sometimes has the advantage of diverse people that results in diverse working relationships, and diverse project experiences. Many of the luminaries of Silicon Valley have had or have served as mentors to people who as a result can chart their way to success more quickly and efficiently. One of my classmates from grad school followed the call to join Linked In and is experiencing that culture, playing a much higher level game.

Mentor Benefits

While a mentor can be like a professor, I think that unless you have one who looks at your work product frequently, or serves like a master in the master/apprentice relationship, skill training and professional education are secondary. I think the greatest things mentors share include advice about growth, role modeling of good decisions and balance between workplace values, and steady, objective and sound judgment in times of crisis.

A piece of advice my grandfather gave me many times was that people are only teachable when they are humble. Be careful about statements like "I am way beyond books", and try to learn from everyone. To build a relationship with a mentor, be sure that you are respectful and receptive and that you show appreciation. It will also be important to follow their advice because unless they are extremely patient, they generally will invest their time where it will be turned to action.

share|improve this answer
add comment

how I improve when there are no other person in the company to teach me, or to me read their code?

When i am using very "specific tools or uncommon programming language/framework" then i look for some special interest groups. Of course, there is an online community for most technology/frameworks that are currently in use. Thus, i use all means of online communication to stay in touch with the latest posts in:

  • LinkedIn groups
  • Tweeter - follow professional people
  • Forums - where problems discussed
  • Blogs - community wiki pages and announcements
  • Special interest user groups - like Gmail or Yahoo groups

One of the best approach to learn good practices of "uncommon programming languages" is to find some developer blog (preferable 4-5) and subscribe to them.

share|improve this answer
add comment

I believe that you will learn a good deal by teaching those that you lead. You will gain a firmer understanding of what you teach them because you will be forced to think about why/how the easy things work (which you probably avoided doing in the beginning because you just wanted it to work)

share|improve this answer
add comment

Just because I'm reading quite a bit of hierarchy in(to) your question:

Learn from the people under you. Software development is about communication, between humans, often through the medium of code. Since good communication should go both ways, learn from the people you program with. (my assumption is that you're not at a 1-man company)

share|improve this answer
    
+1. I'm currently studying CS and working part time as a developer. My team leader have asked me to sit with him and review his code. I learn a lot and feel he has confidence in me, but I also think I can give something back. My experience is not the best, but my knowledge is updated and I can say "a new and better way to do this is to.." etc. –  Matsemann Sep 22 '12 at 17:45
add comment

My main solutions to that over the past 2 years have been:

share|improve this answer
    
I realized how uncommon is the stuff that I use when none of these sites mentioned it :P –  speeder Sep 25 '12 at 21:58
add comment

My dear friend

Let me tell you it is very rarely found that some one is teaching another person the nuances of programming . Programming is something which has to be learnt by yourself. If you concentrate on a singular topic and try it out and join various forums which support that topic , then sooner or later you are going to become master of that topic. Kindly do remember you yourself are the best person to know how good you have become . In the kind of industry and world we are, we must become our own mentors, for what we teach ourselves stays with us for ever .

share|improve this answer
    
Not for everyone. Myself and several others have had the best learning from a mentor. I had one for 8 years in the 90's and I have one now for newer technologies and it's great. Plus I am returning the favor by teaching others at meetups, etc. Those who have not yet experienced great mentoring are missing what many consider to be essential. Today's coding itself is increasingly done via pair programming, reviews and shared code (through DVCS systems like git), so it's a good way to learn and it's the way you'll likely be practicing if you are passionate about the craft of programming –  Michael Durrant Sep 21 '12 at 20:12
    
However what is also true is that you are unlikely to find this by asking or seeking it in new or potential positions. You usually find this by trying to get the best possible feel for personalities up front for a new job and then, if you're very lucky you find the right person. Looks for jobs that are less high-pressure and be prepared to make allowances in other areas. –  Michael Durrant Sep 21 '12 at 20:17
add comment

Some hints:

  • Learn other languages. Then compare them to the language(s) you already know, and try to look at the ways you can improve your coding skills in those languages by using things you learnt from other languages. "Free your mind" before learning those new languages, and don't try to simply clone the concepts of one into another.

  • Read code. I don't know what uncommon language(s) are you using precisely at your jobs, but I'm pretty sure you can find high quality open source code written in those languages by very skillful developers.

  • Stay with the community. If you don't have colleagues who use your language(s) at work, it's not an excuse to not sharing the knowledge through websites like Stack Overflow, where there are questions and answers even for very uncommon languages. Try to search for those questions by tag and see if you understand all the answers. If the questions are unanswered, answer them.

  • Teach. Teach your coworkers. Write a blog. Whatsoever. By explaining something to others, you'll learn it better.

share|improve this answer
2  
+1: Teach. Yes. Sometimes when I am preparing a small demo session I invariably find myself asking questions that my audience would. In an attempt to prepare for answers I research and more often than not I learn something invaluable. –  Monster Truck Sep 22 '12 at 3:37
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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