Ask HN: Confused programmer looking for career advice
I'm currently working part-time, but really don't like the work I'm doing (bad development practices, boring work, bad pay, making no progress as a developer, ...). I've been looking for a new job for more than 6 months but got no real offers. I got some interviews, but didn't get a job (I admit selling myself is not my strong side). Where I live the economic situation is bad and job market pretty slow, so few companies are hiring at the moment.
I have a CS degree, cca 4 years of experience developing internal enterprise software projects, mostly with .Net (but no publicly available work to show off with). I don't think I'm some kind of super "ninja-rockstar" programmer but I believe I'm competent enough (I solve problems, get stuff done, follow good practices, read programming blogs, follow tech trends, have 2K reputation on StackOverflow).
I'd really like to work on something more exciting, where I could solve interesting problems and develop cool new products with modern technologies, somewhere where good development practices are encouraged, somewhere in a more startup-like, product oriented environment.
I'm really not sure what to do next, what to focus on to improve my options. Here's some ideas I'm considering about what to try next. Should I
-try and build something cool myself (don't think I'm ready to start my own startup just yet)? -find some open source project and try to contribute? -try to find some work on freelancing sites? -learn some new technologies that cool kids are using today or improve existing skills? -try to learn/improve some other (non-programming) skills? -look for a job more aggressively, try some foreign job sites, go to community events, meetups,...? -some other stuff that I didn't thought of?
So I'd really like to hear your opinion on what should I focus on. Any thoughts or advice would be appreciated.
10 comments
[ 3.6 ms ] story [ 17.9 ms ] threadDo you love web development? Build a web app that makes your life a little easier.
Wanna learn mobile? Make a simple iPhone or Android app and put it in an app store.
Maybe that's not what you're looking to do. Try submitting patches to Firefox or a different open source project.
Not only will you learn a TON by following through on something like an iPhone app or fixing a bug in Firefox, but it'll show potential employers your ability to get shit done.
Just try and think about what will make you a unique hire. If you were looking at your resume next to someone else's, come up with something that you would put on yours that would make you hire yourself.
Remember, the people working the jobs you want to do are your peers.
So, do you want to build something? Well, why aren't you ready? Everyone is ready to build something cool. If you want to do it, you'll find a way, even if that involves learning more or finding people to help. However, if you want to take the startup path, you have to know you want that.
Do you want to do freelance work? Well, start now. Get any and all jobs, build your reputation and gain experience. However, again, is that you want? Do you see yourself doing freelance for years? Full-time? Part-time?
Do you want to have another job? This is really option 3 in terms of living and being able to support yourself. You either 1. Start a company, 2. Work for a company, 3. Do freelance. It is very dependent on your values, goals, personality, etc. Do you want to deal with the hard work, stress and risk of a startup? Do you want to work a 9 - 5 for someone else because it's potentially more stable and less stressful?
I think you just need to ask yourself the questions about what you want for your future and then decide from there.
In regards to the other things listed... open source projects, learning more (programming and non-programming, networking, etc. I would say regardless of which option you choose (startup, job, freelance), you should always be doing those things. Learning and developing your skills, be them technical or not, is ALWAYS essential... as is networking.
Anyway, I know didn't really tell you what you should do. However, hopefully I helped you realize that you just need to take a step back and assess what you want out of life and how you will be happy... then do whatever it takes to get that!
1. Are you happy with .Net development? Or are you willing to explore something new?
2. What do like doing? Do you enjoy web development? Then stick to it. Otherwise, maybe a small project in say, a mobile app will tell you if you like that kind of work.
With that said, I have found that attending community events is a great place to start. You get to talk to and mingle with like minded folks, and even if it is a community around a technology/methodology that you have little or no experience with, you can still talk to folks and see what they think. Most communities I am a member of are always helpful. I have also found coding meetups as a great place to get to know people.
But the networking element is very big, and useful. People need to get to know you.
Once you have picked, say .Net, or Ruby, or iOS, try a small project with it. Make a presentation of what you have learned. Again, nothing teaches you like teaching others. And people will remember you.
It seems you are already somewhat of a "producer" (your StackOverflow score) - adding to that never hurts. Whether that is working with someone at a coding session, giving a presentation, writing on your blog about your learnings, or contributing to open source - it helps.
Feel free to experiment a bit - Spent a little time on a mini-project of your own and see if you can turn it into something you like doing (this takes effort and discipline especially if it's using new technologies, and not a very small project). If that that does not work, look for some OSS project to contribute.
My take on this is simple - people admire those who are passionate about what they do. Companies (and tech people higher up on the food chain) are always sniffing around the local groups to find talent (at least that has been my experience).
I personally do a little of everything, and although I do find that I spread myself a little thin, it has helped me. I speak (and help out) at local user groups, I used to host and manage two of my own, I usually have a project (in a new language) of my own. My OSS contribution has been next to nothing, but I am hoping to turn that around soon.
On a final note - learn how to sell yourself. You sound like you already have some very good practices - you just don't know how to "work" it. One of the books I recommend to everyone is "Never Eat Alone" - It truly changed the way I see every relationship and helped me tons along the way.
Hope this helps.
Maybe the one thing I would say is, be willing to move if you can. I left my hometown when I was 26 (for grad school in my case), and it was the best thing I ever did.
Good luck!