7 ms·
Ask HN: How do I find a mentor?
Greetings-
I was a professional pilot for fifteen years then lost my job 18 months ago. The market is horrible and I decided to pursue a career in programming.
I was accepted to the IIT master's program but I can't afford it and don't know if taking four years to do it part time will help me with my current predicament.
I have completed training in C++ and Java at a community college but that doesn't say much. I don't know what I don't know and want to learn.
I am not a wizard, ninja or a gnome. I am a fairly bright guy trying to figure this out but I need help in learning best practices and how this world I have chosen to enter, operates. How do I gain practical experience? The age old question...
I have joined two user groups but to date they have proved lacking for myriad reasons.
Craigslist didn't seem like the best place to look for a mentor so if anyone has any suggestions I will be in your debt.
Kind regards.
- BrandonM 16y agoI find it rather funny that there was just a submission two days ago answering precisely that question: http://news.ycombinator.com/item?id=1708777 http://news.ycombinator.com/item?id=1708777
- siruva07 16y agoGabriel Weinbergg (@yegg) just wrote an awesome post about this http://www.gabrielweinberg.com/blog/2010/09/how-to-get-that-guy-as-your-mentor.html http://www.gabrielweinberg.com/blog/2010/09/how-to-get-that-...
- davidw 16y agoYou could start by putting some contact information in your profile - a web page, your location, that sort of thing.
- mipnix 16y agoDone. Thanks. Didn't realize the email in my profile wasn't public.
- sahillavingia 16y agoContact people on YC that are already planted in areas you want to be involved in. Add an email and website to your profile. Tweet. Create a "brand" of yourself. Soon, hopefully people will start knowing who you are. That's what I'm doing right now, anyways. I'll tell you how it is going a month from now.
- edw519 16y agoForget user groups. Forget craigslist. Forget the internet. 1. Do stuff: Pick up projects. Do open source work. Volunteer. 2. Network: Meet people in person. "Finding a mentor" is a misnomer. You don't "find" a mentor any more than you find a girlfriend or spouse. A relationship with someone who can mentor you is the byproduct of everything else you do. Get out there and get busy. You may be surprised at the people who take an interest in you and your work.
- phugoid 16y agoI sincerely wish you would elaborate on that. How do you pick up projects? Where would you find entry-level projects? Do you mean open source project (in which case there have been several posts on HN and reddit about getting started). Maybe open source work is really the scenic route to where he wants to get - after all he's looking for paid work. And he seems to making an effort to meet people in person (having joined two user groups). What else / where else can one hook up with other software people (if you say forget the internet)?
- grandalf 16y agoMy take on a reply to this is: - Find a project you want to do. Maybe it's a website that does something simple, maybe it's an iphone app. - Scrape together a first approach at building it. - Build it again. - Learn/read along the way - Build it again. After a few iterations you'll start to get the hang of it.
- mipnix 16y agoI am teaching myself LAMP and just spent the weekend trying to figure out how to install all the android packages on my Linux laptop. You are right about the iterations. Thanks.
- mailarchis 16y ago" A relationship with someone who can mentor you is the byproduct of everything else you do. " - That is very true. Maybe you should spend a week skimming through different languages, pick the one you find the easiest. Spend the next two three weeks going through a beginner's book for the language and coding some simple programs. Next plan a project, it can be a simple app and code it in the language. And as you are coding, you will keep encountering problems which might need some research, you will refer books, blog posts, online tutorials etc. and will keep on learning. As you work on the project, you will find mentors on the way, some will guide you on the technical stuffs, others might go beyond that. All the best.
- jacquesm 16y agoIf I were you I'd try to use my cross domain knowledge (a pilot!) to position myself in a niche where there are few competitors, I have a hard time imagining there would be a lot of people that can call themselves programmer/pilot (though on HN for sure we have a few). That seems to be your unique selling point, so try to get as much traction there by recycling your old skills for as much as they're worth. As for mentors, that's easy: Ask! (the specific person). If you're turned down find another one until you have what you're looking for. A bit of an introduction wouldn't hurt, and those people here that have their email addresses listed do so because they don't mind being contacted, otherwise why else would they do that?
- milkshakes 16y agoNot just the domain knowledge, the access you have to your target market. 15 years is a long time to get to know people. Customer development will be a breeze, you could literally shoot the shit with your peers, and take notes afterward. You'll also have a head start when you start marketing too, because you can start by telling everyone you know in the industry.
- cadr 16y agoThis is a great suggestion. Ask yourself "as a pilot, what annoys me or what are tasks that I have to spend my time on". Maybe a site for matching up people up to fly together to events? Or logging your flight hours. (I am not a pilot - I have no idea what I'm talking about.)
- GaryRowe 16y agoIf you want some help getting started with Java, I'm willing to give you some pointers so you can feel confident developing web applications. I can be found on gary-rowe.com.
- mipnix 16y agoVery kind. Thank you.
- phugoid 16y agoYou're at a disadvantage compared to the nerds who have been sitting behind a computer since they're 8 years old. Instead of competing with them, try to use your background in aviation to wedge yourself into the software business. I suggest researching lots of smaller companies that make aviation-related software. Everything from aircraft systems to websites for pilots, iPhone applications related to aviation, tools for GA pilots, etc. There may be people out there who would love to have a software enthusiast pilot on staff, or consulting. I work in flight simulation, and one very interesting job I've seen people do is test pilot / test engineer. Your combined background could make you a great candidate for that sort of role too. There are a dozen simulator manufacturers around the world, mostly in US, to look up.
- bryanh 16y agoI agree with a lot of advice here, especially those that point out that your own initiative is most important, but I would recommend my site: http://everymentor.com/ http://everymentor.com/ A lot of folks around Hacker News are probably aware of it (because I bring it up in almost every thread.. :-) but you might get lucky and snag someone that is interested in working with you.
- mipnix 16y agoThank you.
- nurall 16y agoThis is veru useful advice - http://www.gabrielweinberg.com/blog/2010/09/how-to-get-that-guy-as-your-mentor.html http://www.gabrielweinberg.com/blog/2010/09/how-to-get-that-...
- mipnix 16y agoI love it when a plan comes together. Thank you.
- maxawaytoolong 16y agoAt this point in time, I would suggest joining the Apple Mac/iOS community. A macbook + iPod touch + developer subscription will get you access to a great community, loads of iTunes U videos about CS and programming from Stanford and other great schools. The community is pretty great compared to others. You have a system where you can learn all aspects of contemporary software development, from scripting languages, to web sites, to handheld/mobile development, GPU development, systems administration, and so forth. You will also be developing a particular skill set that is highly in demand for employers, and one in which you can start immediately making money on your own selling apps. The unix and scripting language skills are also transferable to most other UNIX jobs, if you need to find work. I've not always been a Mac/iOS dev, but this is now the advice I give to newbies, including my own brother.
- mipnix 16y agoRight now my portfolio is tied up in food and shelter. Apple, while a fine product, is out of my reach. I watch all the Stanford videos and MIT OCW. I will check out the Mac community. Thank you.
- bretthellman 16y agoGreat question. First, don't look for a mentor. Rather, start networking and let the mentorship relationship develop naturally rather than artificially. I work for a big internet company (not bragging) and they paid people up between groups which historically fails... Why? Because it's artificially, there's nothing there.
- ananthrk 16y agoThere was a similar thread in HN long ago (http://news.ycombinator.com/item?id=670453 http://news.ycombinator.com/item?id=670453) and an awesome comment from 'plinkplonk' on this subject (http://news.ycombinator.com/item?id=670795 http://news.ycombinator.com/item?id=670795).
- iampims 16y agoLet github be your mentor and try to find someone to write/share/debug/review code with.
- mipnix 16y agoI have an account but just have no idea what I am doing. I am taking a Linux class right now to try and figure it all out.
- iampims 16y agoGithub hosts open source software. You can browse through all kind of projects written in a wide variety of languages. One way of approaching this, would be to pick one language, read about it, and then look for other projects on Github written in that language. That'll teach you a lot. Let's say for instance, that you've heard about Python, and would like to learn a bit about that language. You can start by Google's Python class [1] Once you've grasped how python works, and written a few scripts on your own to get familiar with the language, you can learn about Google App Engine, which is a platform for running python scripts on Google's infrastructure. They have a very nice introduction to App Engine. [2] Then once you've played with it, and deployed your first 'hello world' program, you can search github for small projects which run on App Engine. [3] Clone them and run them on your local server, read the code, tweak it, break it, fix it. Within a week, you should be able to write a simple and fun little service. Then go learn about Ruby [4]. And see how it compares to python. Write a bunch of ruby scripts, install sinatra [5], deploy to Heroku [6]. Now, try to write the same simple and fun service you've previously written in Python in Ruby. Then go read about other scripting languages (javascript, PHP) and once you've made your mind about which one you prefer, stick with it for a few months. You can learn and deploy sites/apps without spending a cent. [1] http://code.google.com/appengine/docs/python/gettingstarted/ http://code.google.com/appengine/docs/python/gettingstarted/ [2] http://code.google.com/appengine/docs/python/gettingstarted/ http://code.google.com/appengine/docs/python/gettingstarted/ [3] http://github.com/search?langOverride=&language=python&q=appengine&start_value=1&type=Repositories http://github.com/search?langOverride=&language=python&#... [4] http://mislav.uniqpath.com/poignant-guide/book/chapter-3.html http://mislav.uniqpath.com/poignant-guide/book/chapter-3.htm... [5] http://www.sinatrarb.com/intro http://www.sinatrarb.com/intro [6] http://blog.heroku.com/archives/2009/3/5/32_deploy_merb_sinatra_or_any_rack_app_to_heroku/ http://blog.heroku.com/archives/2009/3/5/32_deploy_merb_sina...
- seasoup 16y agoNow that you've done some basic programming in C++ and Java, you are in a little bit better position to figure out what kind of programming you want to be doing. The C family is a language used in corporations for programming applications that we use all the time. Objective C is what it used on iPhone/iPad/iWhatever applications. C is also big in the video game industry. Java is also used by corporations to develop applications, but it is also used to develop web sites. If you want to use java to build websites there are tons of choices to make about what to learn. Here are some words to research: Tomcat, Spring MVC, Hibernate, Ibatis, GWT. Java is a very heavy weight language, but probably the most commonly used today. C# is Microsofts answer to Java. Also used in the corporate world, not as popular as java. Then there are the web programming language: PHP, Ruby, Python. PHP is strictly web programming, while Ruby and Python are used for other things as well. Ruby has a web stack known as Rails, commonly referred to as Ruby on Rails. Python has a web stack known as Django. If you are programming in C or java, and not on the web then you will be spending lots of time looking at text. If you are programming for the web, you will also need to learn HTML, CSS, and javascript, as well as a javascript library like jQuery and you will be spending lots of your time looking at the browser and lining things up. You will also probably need to learn SQL at some point, though that can wait if you are programming for the web (Web developer) and probably cannot wait if you are programming off the web. I come from a web background myself, and would say the easiest place to start, if you want to program for the web, would probably be Ruby on Rails. Learn Rails before learning Ruby. This is an excellent resource: http://railstutorial.org/ http://railstutorial.org/ Hope this helps some!
- mipnix 16y agoThank you. Helps indeed. The breakdown is what I have been looking for. Part of my problem is I was so shell shocked from losing my job, I felt I had to know all the languages and all their frameworks in order to have a chance in the market. Thanks again.
- ketanb 16y agoFacebook has puzzles page. Facebook may hire you, if you can solve their puzzles. I don't work at Facebook and am posting it from their website. http://www.facebook.com/careers/puzzles.php http://www.facebook.com/careers/puzzles.php Just a thought, if you are learning to program anyway, why not try to solve FB puzzles. You may have the job by the time you are done learning. I did worked at Singapore Airlines and was building Crew Management And Rostering System for pilots. To maintain international flying license, pilots have to fly each and every country once a year and they also have to get retrained in different emergency landing scenarios. As a Pilot, you may know so many problems pilots face due to such stressful environment. You may be able to build meaningful application which can help ease those problems.
- Aegean 16y agoDon't learn C++ as a starter language. C++ and Java are languages that have been mostly evolved from C. C was designed as a convenience tool to replace stack based assembler programming, which is what existed before any of these languages were available. So if you learn C++ first, you will have hard time understanding why there classes, why there is protection, why there are member fields, why inheritence ... the whys will be an endless list and you will never figure it out. If you wanna get that far, buy the C progamming language book and learn C first. In C you will get to understand the roots. To fast forward and save you some time in programming, learn python. It has all the bells and whistles, and its simple to program. Read this guy's essay: http://catb.org/esr/faqs/hacker-howto.html http://catb.org/esr/faqs/hacker-howto.html If I were you I would either write a simple program that you think aviation people might need, or taking the employment path I would go for an aviation related software company like one doing flight simulators.
- mipnix 16y agoToo late. Already went through data structures in C++. It's what I am most comfortable with right now, which is not saying much. I don't understand what actually happens at the kernel level but the language makes sense to me for some reason. My professor thought I was insane when I signed up for C++, Java and VB.Net all in the same semester and all with no prior programming experience. I started the Google pyhton tutorial. Thanks.
- mipnix 16y agoWow. Great essay. Thanks. Too late about the C++ Java thing though...
- devmonk 16y agoDecide what you want to program before finding a mentor, even though some mentors might help you find a language to specialize in rather than just teaching you a small part of what they know and how they think. If you want to be more involved in web side of things and getting dynamic website stuff (forms, etc. etc.) done quickly, go the PhP or Ruby on Rails route. If you want to have a job almost anywhere, do Java. With Java you could be doing anything from server-side, embedded code in chips, to Android apps, to web applications (dynamic websites). If you want to have a job with almost as good of a chance as knowing Java, learn C#/.Net. You can cover the Microsoft side of the virtual world. If you like utility, crazy looking slashes and text manipulation, learn Perl. Want to write software that runs a lot of the faster stuff, operating systems, things that allow Java, Ruby, C#, Perl, etc. to run, software that runs devices, etc., learn C and C++. There are many more options as well. Try to choose something that fits where you want to be, not just something easy. I agree with those who say you should find a programming job that showcases your pilot's knowledge. That will provide you with the greatest chance of success. Find out the type of programming that Boeing, etc. need, and do that. Odds are, it is C/C++ or Java. Or check out Flight sim companies. These two might be interesting: http://www.prepar3d.com/ http://www.prepar3d.com/ or http://www.cascadegamefoundry.com/ http://www.cascadegamefoundry.com/
- mipnix 16y agoC++ and Java is where I started, because I didn't know any better. I then pursued C++ because it is what they use in the master's program to which I was accepted. Thanks for the links. I would love to learn what is involved in graphics programming.
- arohann 16y agoThe main thing to know is that if you've not dome much regular programming before, it will be fairly hard. Do not give up, it gets easier with practice. Keep at it. Look at some recent open source projects and go through the code. Set yourself some programming tasks and complete them. Do this regularly. All the best.
- mipnix 16y agoI'm nothing if not bull headed. Thank you.
- snprbob86 16y agoIntroductions are everything. A program like YCombinator or TechStars is a giant boost up for exactly that reason. But if you have to start at the bottom, the process is exactly the same... just longer. It's like that guy who traded one red paperclip for something better (and better) over and over again until he had a house. Find the 10 smartest people you know, make friends, do something for them, and then ask them to do something for you: "Introduce me to two other smart people like you". Before you know it, you'll have some mentors. And if you keep it up, you'll get better and better mentors.
- mipnix 16y agoThank you. I guess it all comes down to a looping sequence. Iterate through the pain as it were.
- deleted 16y ago[deleted]