Ask HN: What does my future employer wants?
Hello, a bit of an intro: I'm 33 years old from Europe and worked in IT departments for at least 5 years but I was always interested into programming, therefore I decided to take a dive into it and I'm planning to produce palpable results in the months to come.
What I do want to know, however, is what would a company expect from someone like me, who doesn't have a formal CS education (yet?) and less than a year of prior programming experience (with Visual Basic). I certainly have a plan in mind that I already execute around the things I want to learn, beginning with refreshing CS fundamentals and creating web applications using Python/Django and so on but my question is about the less "technical" stuff because I can certainly just open a job board and see what are the technical requirements for a job opening I'm interested.
What I want to know is if would my motivation, determination and ability to learn and display results through a portfolio of homemade projects will be enough to convince an employer to give me an interview and an offer? And if not, is there something I can do about it? Generic reply: When I'm recruiting I ask two questions of a candidate: * What value do you add to my company? * What proof do you have that you add that value? I want to know that you will be of net benefit. To try to satisfy that you need to know what my company needs. Then you need to claim to be able to fill those needs, and finally, you need to back up those claims with evidence. So you think you want to work for me? I do soft real-time processing of image data, extracting features, compressing the data, transmitting it, displaying it for action by operators. Show me that you can learn about these things - you won't have the explicit domain knowledge, but I want to know that you can acquire the domain knowledge, and then have the skills to do the necessary processing. Have you already read about, understood, and implemented some algorithms? Have you made small improvements to them? Have you chosen the right language for the job? And so on. I'm unusual, so you need to remap everything I've said into the industry you're interested in. You will have to prove that you can "ship it". I suggest that you start off by picking a domain that you're interested in and building a body of work that demonstrates your ability. Be sure you pick some thing that's neither too wide nor too narrow. For e.g. picking something as broad as "web development" is too difficult - these days that involves everything from knowing semantic HTML to CSS to JavaScript to CSS to Rails. Picking a practical "project" will help you stay motivated in learning things and you will also have the benefit of "publishing" it as something you "shipped". Once you start feeling a little confident about the code you write, start putting your projects up on github. Also, start contributing to other projects in github (e.g. libraries you have used in your own project). There are many projects where you can easily begin by fixing small bugs. Then you can slowly learn the code base enough to contribute features. Would things like an eShop, knock-offs like game reviewing websites where a user can register to recommend and post reviews for videogames and a tumblr clone would qualify as practical? Sure, but wouldn't it be better if it's actually used? A tumblr clone is probably too much work for an eventual ghost town. You can pick more focussed projects that solve a small problem really well - in that way, you have a chance that's actually used. For e.g. a chrome extension for something that has always bothered you. Your employer wants results and they want skills. If you can back up your programming with some other sphere of knowledge science, finance, medicine, finer details of some other profession, etc. You have something additional other programmers don't - a sense of the "big picture" of whatever other skill or industry you know.