Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How to go from zero knowledge to employable as a junior developer?
6 points by soneca on Oct 28, 2016 | hide | past | favorite | 19 comments
I am 37 yo, from Brazil and I made the decision of somehow radical (and late) career change, from manager to developer

As a summary, I graduated in Economics, worked 8 years with non-profit project management and fundraising, then about 4 years with startups (non-tech founder and marketing). Now I decided that I want to invest in being a developer. I believe I will be professionally happier as a developer.

I would like to ask HN your help with some doubts around the goal that I set myself:

Start from scratch and, in 4 months, be employable as a junior developer.

Is it possible at all? How is it possible? Where should I start? What path to follow? Learn from where? Bootcamps, online, self-learning, mentors, classes?

I am inclined to focus on front-end development, but maybe at least some back-end knowledge to be kind of a full-stack web developer. I can go trial-and-error-and-google mode with CSS/HTML, but JS (and everything else) I have zero knowledge. I believe I have some affinity with the craft of programming, good logical thinking and expect to learn things fast.

I am open to brutally honest feedback and diversity of opinion, even questioning my decision at all if you will.




I'm less familiar with the world you're coming from, but I'll give a variation of the advice I've given before:

1) Maybe more than 4 months to be an employable junior developer, but certainly under a year if you're willing to put the time into it.

2) "Front-end development" is very broad. You could work for anyone making anything doing that. And that could easily be a feasible first step towards a career in development, especially as it'll give you paid opportunities to practice. But

3) You have 12 years of professional experience. Capitalize on it. Are there applications that would help in those niches? Are there solutions that could be provided? Maybe not an application, but the synthesis of several to create better workflows and environments for workers in non-profit project management/fundraising.

What were your pain points in your prior career(s)? What did you see organizations struggling with? Create solutions or find solutions to fill those needs, and then market them (you have a marketing background, should be helpful, and industry connections, even more important). If you aren't interested in doing a startup or consulting yourself, maybe look for existing companies that are trying to fill these needs.

EDIT: Also, for anyone else reading this, particularly from technical backgrounds in other engineering/science disciplines, I highly recommend considering that 3rd statement. You have a great breadth of technical knowledge, unless you just hate the field or have a true passion for something else, no reason to abandon it.


> Start from scratch and, in 4 months, be employable as a junior developer.

No, not possible. I mean you can fake your way in, but you won't be employable on pure skills alone. If you have never touched an instrument or cared for music, you cant play in an orchestra after only four months of learning when you are 37. Maybe some prodigy can, but not 99.999% of the population.


Well, a junior job in a company is definitely not a musician in an orchestra. More like, in 4 months studying guitar can I tune the instrument of a professional musician?

But anyway maybe your opinion stands. Let's see in some months. But "fake my way in" is definitely something I will never do.


Good luck! I hope you make it.


Lets assume I am an engineer that has decided I want to transition my career and devote my career to helping non-profits because I will be professionally happier. What could I do to demonstrate to you my commitment and interest in this new career path?

Maybe I could show how much I care about the cause, by volunteering at an event. Or helping out running a fundraiser.

I'd ask yourself the same question for engineering.

I think a good answer would be something like: "I thought building cool web frontends was a really interesting problem, so I taught myself the basics (books, online courses, classes) and built (INSERT THING HERE) to build the kind of thing I would love to see in the world."


Like creating a portfolio, right? Good idea, thanks!


Stick to your specialty and scratch the programming itch as a hobby. If you get good at that hobby, see if you really want to be a professional dev and look for a job. If you get nothing you like start your own thing (your experience with startups might be handy here). I would wait at least a year to see if this is just an infatuation or deeper love. And while you are learning, pay special focus to algo and design, a bit more than knowing nifty things with popular frameworks in the language of your choice.


Thanks for the consideration on your words!! Actually, I considered this idea about 4 years ago and dismissed as "too late to such a career change, although I'm sure if I was 20 again I would be a developer". I spent a few months learning C#, .NET and managed to build a very small, chaotic, badly coded, badly designed, but functional web app! And these months are still today among the happiest of my life at work.

Now I successively quit two jobs in a 3 months period. I was starting to once again decide if I wanted to found something or look for a job, then I realized I actually wanted to be a developer. So it is a mature decision.

Also, I am between jobs, so not much of an impact to go full-time on this path right now.

And thanks for the learning tips.


OK. Going by what you said, the best way is to actually build something that works, and if possible non trivial (you can even try to clone an existing popular app as you can focus on actually implementing it than brainstorming ideas), and showing it at places like HN, CodeProject etc with your profile clearly mentioning you are looking for a job (and a career change). Action beats words. If the app you have already built is in good enough working condition, you could use that itself. Being in between jobs is even better for this adventure as you can dedicate full time to this with no distraction. Good luck.

I am in a similar boat as you, except I am trying to move from C++ desktop to web domain, and this is what I am doing - building apps (actually porting my private desktop apps to web platform). Once I am happy with the quality, I will leverage on them. Of course, I am looking for a position comparable to my current one (lead dev or more) so I am being a bit more thorough etc.

> I was starting to once again decide if I wanted to found something or look for a job, then I realized I actually wanted to be a developer. So it is a mature decision.

You mean you want to work as an employee for someone as a developer and not be a developer entrepreneur? Just want to know.


I struggle a but with this decision. But honestly, I don't thin I can afford the risk of entrepreneurship more. And after these months without income, it will be important to have a paycheck in the short term.


Find a non-profit and talk with them about building an app for them. If they don't want to pay for it fine. Just build and make sure you can put it on your resume.


How do you know that you want to be a developer if you have 0 knowledge of software development? A lot of jobs require logical thinking and learning on the fly. That doesn't mean you'll enjoy all of them.

I'd say get your feet wet by learning Python and some basic algorithm knowledge first to see if you're actually interested in programming. Also, learn a lot before trying to Stack-Overflow your way to an app. That approach is exponentially harder the less you know about software development.


For learning Python and basic algorithmic knowledge (like the other links, free) - https://www.udacity.com/course/intro-to-computer-science--cs...

I'd say to get to lesson 2 and from there spend 90% of your time solving Codewars challenges and the other 10% continuing the course. The former 90% will make the latter 10% a breeze. Google whenever you have a specific question and expect to search that same thing many times before you remember it.

I challenge you not to enjoy this.

Udacity has another Python course (OOP with Python). It feels very 'on rails' and isn't much fun. I'd skip it.


Giving a little more context, quoting another comment of mine: I considered this idea about 4 years ago and dismissed as "too late to such a career change, although I'm sure if I was 20 again I would be a developer". I spent a few months learning C#, .NET and managed to build a very small, chaotic, badly coded, badly designed, but functional web app! And these months are still today among the happiest of my life at work.

Your tip on learning properly about software development before trying to make things happen through Stack-Overflown is very valuable! I can attest that by personal experience!


I've taught three people to code from scratch (my brother and two friends from college). All were able to get junior-level jobs in the SF Bay Area within 6-12 months. All have since made significant progress in their careers.

To answer your questions:

1. Is it possible to do in 4 months? Certainly, but you will have to work your ass off, and also work very efficiently.

2. How is it possible? Work 60-70 hour weeks (easy if you love programming and can finance yourself without a job, hard otherwise), and have a super efficient curriculum.

3. What path should you take? I'll give you my advice below. To do so I'll have to make lots of assumptions about your situation, but here goes anyway:

---

- Avoid bootcamps. Assuming you're more motivated than the average person in your class, they will only slow you down. (One of my friends started a bootcamp against my advice, regretted it, and quit halfway through. The pace was too slow. Very few of the graduates got jobs afterwards.)

- Give up on being full-stack. Four months is not long enough. You will need to strategically cut corners, and this is a big one.

- Buy a Mac, ideally a MacBook Pro. Get one used if you have to. Don't try learning on a PC.

- Right off the bat, start using the Terminal for everything: downloading files, installing programs, opening programs, navigating the directories on your computer, copying files, deleting files, etc. When you don't know how to do something, Google it. It will be painful at first, but you will get good eventually, and it will save you pain later.

- In general, remember that learning new things (everything below) will often involve lots of pain and frustration, but push through it. Once you start to develop mastery in an area, it tends to get much more fun.

- When learning, you want to "see saw" between reading and doing. Too many people try to read and memorize everything, but that's impossible. Reading is just to orient yourself so you can figure out where to start. Doing is how you learn and remove confusion. Then you read some more to answer specific questions. Repeat.

- Start with HTML/CSS. Find cool website screenshots on Dribbble.com and try to build rough versions of them from scratch. Don't neglect to learn flexbox. Do this regularly for a cpl weeks and you'll get good.

- Meanwhile, learn basic programming. Use JavaScript. Remember to see saw. Read just enough to get the just, then dive in and practice. There are lots of algorithmic practice problems online, e.g. http://codingbat.com/java. Do hundreds of them until recursion, and looping, and writing functions, and solving basic algorithmic questions you find online is easy.

- When you are good with HTML/CSS and familiar with JS, it's time to combine the two. Learn about the DOM and learn about jQuery. You'll see how JS can make your pages interactive. Work on small projects, the first of which should be a portfolio that you can showcase your subsequent projects on. Use Git and GitHub for these projects.

- Continue reading about JavaScript. Read books on it. Learn the intermediate and advanced parts of the language. People will tell you to learn frameworks like Angular, Ember, React, etc. Ignore them. Even jQuery (which is much simpler) will be a bit much for you to handle and will seem like magic at first. You don't have time to dive too deep. This is just the price you pay for learning in 4 months. But that's okay, you can still get a job.

- When you do get a job, don't stop learning. Everyone I've taught stopped (or significantly slowed) their learning after landing their first job. They regretted it later and eventually resumed learning.


Wow! Thanks!! Incredible tips!

One important doubt though: how important is it to get a Mac? I only ask because of $$$. It's like indispensable, strongly recommended or good idea level of requirement?


You just need some UNIX-like machine. You can get Linux as an alternative, or install Linux on your Windows computer.


Thanks for this response. I'm 24, in the Bay Area and I'm also interested in learning Web Dev. I don't expect to do this in 4 months, but the sooner the better.

Some questions:

- What bootcamp was this and do you think this holds true for, say, Hack Reactor? My initial intention was to join a bootcamp and even after being mildly disenchanted with everything I've heard, that was still my plan. 60-70 hours /week seems like a longshot otherwise - especially when you don't know what you're doing.

- Why Mac? I'm on a PC and I've just installed Ubuntu as my main OS. I figured running linux, even if it is just Ubuntu while I get a feel for it, would be more 'legit'.

--

Finding the motivation to put the time in was a challenge before I found Codewars. I'm now pretty good at doing these algorithms and more than a little disappointed when I was told they're basically not used in actual development.

OP if you're interested, I can pair program with you on these algorithms and show you maybe some fun stuff. I can get a trail account with Coderpad.io and we can use skype for voice. Let me know.

Here is a tutorial for linux command line. I'm going to assume there is some cross over with other OS's:

https://www.udacity.com/course/linux-command-line-basics--ud...

Tutorials for HTML / CSS - these are free as well:

https://www.udacity.com/course/intro-to-html-and-css--ud304

https://www.udacity.com/course/responsive-web-design-fundame...

While I like reading novels, when it comes to learning to program I've realized I like the doing much more than the reading - to a fault. I essentially learned Js syntax with Codewars and google and at this point it's struggle to work through Eloquent Javascript. I'll have to double down on that.

My offer to pair program (with you or anyone) stands for actually building things as well. I'll also be doubling down on meetups in the area. It might be smart for you to do the same.

https://www.meetup.com/ is a good source for that.


Thanks a lot for the links! About pair programming I thank you sincerely for the kind offer, but first I must create my own environment and routine for learning. Then I will know how helpful it can be. I might come back to you for this later, when I'm more 'settled'. Thanks!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: