Ask HN - Need career advice

10 points by frog_leap ↗ HN
I am a java developer. For most part of my career I have worked in companies where I got to develop software which was mediocre. Not too good not too bad, just OK. This is not to say that I am a bad programmer or I lack the knowledge of good coding practices. I do have them and I try my best to stick to them. I also try to learn on my own in my free time. It is just that all the opportunities that I have got were quiet trivial - basic CRUD applications. Now I think its time to move on and do some work on serious and cool stuff - cause that is what I wanted to do. Stuff that really matters. Stuff that will be used by people. Perhaps a startup would be the right place or even may be a big company, bottomline is that the nature of work should be exciting.

However I have some trouble moving to other place. Wherever I go for an interview I get rejected. This is due to 2 reasons: 1. I don't have a formal education in computer science. So if they ask any questions regarding data structures, algorithms I get stuck. This sends a wrong impression. 2. Though I am a Java programmer and I think I am quite good at it, they ask questions about technologies I have not worked on. So they think I am just a dumb programmer. Should I have been familiar with all technologies related to Java? Should I have learnt a new language?

I am quiet desperate to move to a hard core techie place. But I am not sure how should I upgrade myself. I know I have to do some homework, but I am not sure what should I do which will get me to the place I would want to work. Should I start reading the computer science basics - what ever they teach at college? Even after that I am not sure if I will make through. Should I learn a new language or technology - even then there are lots of them and each company uses one or other - so it would be like shooting arrows in the dark.

Can some one provide advice on how I can revamp my career. I am ready to spend time to read stuff and upgrade myself even if it takes a long time for me.

There is also another issue. I am more looking towards startups as I think I would fit their culture well. However I don't know where can I find startup jobs. They are not available at monster or naukri. Even if they are they are sporadic. hasgeek.in and other sites don't have many jobs in java. Please advise on this as well.

6 comments

[ 4.1 ms ] story [ 34.3 ms ] thread
I can't help you with the programming advice, but I would start looking in these three places: 1) Startuply.com - There are a decent number of jobs that teeter on the edge of corporate/startup here and you can probably find a few decent companies.

2) http://jobs.github.com/ - There is a small but nice selection of startup dev jobs here. Most of them seem to be ruby-ish but you should be alright.

3) http://careers.stackoverflow.com/ - You should find alot more Java jobs here. There are less startups but still a bunch of cool roles.

As for how to deal with companies asking you with other technologies, you have a chance RIGHT NOW to apply the whole iterative process to your interviews. Each time a company asks you about a tech in an interview, go google the crap out of it, play around with it, and learn a bit! Even if you spend 48 hours REALLY learning one tool, by the time you do 10 interviews you should be relatively prepared for the future interviews. As someone who hires alot of engineers, I would love to hear someone take this approach as it shows they really do care about the language, the community, and will learn all the new stuff we throw at them on the job.

I can't help you with the programming advice, but depending on where you are, there are tons of startup, entrepreneur blogs around that also have jobs boards. Here in Boston, I follow: http://venturefizz.com http://greenhornconnect.com

Not to mention HN has their job board.

Good luck!

It sounds from your post as if you don't know how to learn new stuff.

I'm sorry, but that makes you unhirable for the kind of exciting projects you want.

What stops you from learning a technology this month? Say, MongoDB. Anything, really.

You say that you get suck on algorithms and data structures, and that you are worried that your lack of a formal education may hinder your interview-ability.

Well, fret not. Little of what is taught in college has any relation to the types of questions asked in technical interviews. And although a lack of degree may influence an interview in more subtle ways, most interviewers are far more interested in your technical ability. So, scratch that nagging fear off your list, and proceed with the following steps.

Step 1: Apply for lots of interviews. Yes, you will fail many of them, but it will also up the stakes and encourage you to take steps to improve. It's easy to want to learn. Having deadlines and commitments makes it harder to push things off to another day.

Step 2: Keep track of every question that is asked in an interview. Make a spreadsheet of places you've interviewed at, and the questions they've asked. Begin to reflect on your interview, and jot down any terms you weren't familiar with.

Step 3: Learn what those terms mean. Answer those questions you couldn't answer before. And most importantly: Understand what the interviewer was looking for in asking that question. Understanding of OO? Algorithms? Systems design? An understanding of the technology stack? Categorizing the questions in this way makes it far more manageable to digest. These are the categories you want to study. Wikipedia, Stack Overflow, Books. Go.

Step 4: Repeat step 1. (You have now caught up to the average university graduate)

Why not find an open source project and start contributing to it? It would be a great way to learn new stuff, and to get known in the 'community' (a great way to get a startup job).

Or start your own project - build something purely for fun. Maybe even start it in a different programming language (the one the interviewers keep asking you about).

Do something fun - that's the best way to learn and the best way to get inspired. The rest will come naturally.