Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: When is it time to give up on becoming a developer?
28 points by doubledown on April 13, 2014 | hide | past | favorite | 62 comments
I've been programming on and off for years, but became serious about making a career of web dev a little over a year ago.

I've had internships during that time, and paid contracts as well. However, I still can't seem to get that first full-time dev job.

I've applied to between 40-50 jobs in that time. Interviews have gone well, until it becomes clear that I'm still quite junior.

I get code challenges from employers that are supposed to take around X hours, yet I know that they'll take me multiple(s) of X to do well.

I'm not sure what else to do with my life, but if I'm simply not smart/good enough to be a (pretty good) developer, I don't want to continue throwing good time after bad. On the flip side, I also don't want to give up prematurely.

Maybe I'm just being impatient, but I hear stories of people going from zero to a junior dev job in a matter of 3-6 months. So either my process is absolutely horrid, I'm just not good enough, or I haven't applied to enough jobs (or some mixture of all of these).

Thank you for any and all advice.



Think of a small project and build it. If you think that part of it could be improved then take the time to rewrite it.

Ask people to review the code and give you feedback.

Web development requires practice, there's no way around it.

There is a tipping point between looking for work and having your inbox filled with people begging you to work for them. It doesn't take long to get there if you work hard and build up your portfolio. Consider joining a startup for the summer, they will usually pay you and you'll get a ton of experience. There are far more businesses than there are developers, and they all need good developers.

If you can't figure out what you want to do with your life then consider joining the Navy, I'm serious, you'll learn more than you could ever imagine and will have an impressive resume and skill-set afterwards. I say the Navy specifically because it seems like they focus on technology more than other branches. I'm also assuming that you are in the US, if not, then ignore this paragraph.

Rather than applying for dozens of jobs (spray and pray?) you should craft your resume to a couple specific positions that you really want and that you think you'll have a good shot of getting, then build a simple demo to show the hiring managers. Read up on the companies you apply for and make sure they know that you want to work for them in particular and show them how you will create value for their organization.

More importantly you need to think outside-the-box when trying to find a place to work. Spamming your resume to potential employers you found on job sites won't work because thousands of people, many of which are more qualified than yourself, will also see those job listings.

From my experience all it takes is one thing to make you stand out to an employer, you'll have to figure out that one thing for yourself. I got lucky and found mine early.


These are some pretty good points. I got lucky in a few ways, but i'll tell my story. I was a journalist for five years, but had always written code for fun. I ended up becoming friends with a former programmer for a large software company who had recently started his own consulting shop. I showed promise as a developer, plus I had other skills that they could use. It was only a 3 person shop at that point, but they were able to find several smaller contracts that I could take on, while also having me help on larger contracts in Rails. I kept at it (and have been at it for about 18 months now). I feel like i'm just now coming into my own, so to speak. i know a popular framework relatively well at this point, and while I don't know all the nuances of several basic web technolgoies yet, I'm still studying them (also, you never stop learning even if you're an expert).

the bottom line is that I found a place that would nurture me as a developer because I had promise (probably like you, if you do it for fun), and I had other skills that they could simultaneously use. By putting my understanding of journalism/communication/marketing to use, I was able to bring in some really nice contracts, and now I'm working on a popular social networking application in Django.

So, I guess what I'd say to OP is to find all your strong points, find places that those skills are also relevant at, and "dual-class" so to speak (if we're going the RPG route here). This way you are leveraging your abilities three different ways: past experience, future promise, and current strengths.

oh: and one thing i forgot to mention. HANG OUT IN IRC, a lot. The people there are incredibly knowledgeable and can often help out or give you advice really quickly

i dont even know if all that made sense. but hopefully it helps some


That's awesome man, congrats! Thanks for the suggestions, they made a lot of sense and were helpful.


This was the path I've tried to take from the beginning ("think of a small project and build it"), and have stuck to it for stretches. However, the last contract stint I did kind of put me off that track, and I think my skills regressed a bit while I was there - I was just banging scripts together basically.

I'm about to start working with a mentor who's far more experienced than me, and who can chat a few times a month around what I'm doing right, wrong, etc.

I'm currently helping out a startup, but for very little money. The experience has been helpful for sure, but I'm not sure it's getting me closer to someone who can handle a feature/application whole hog, start to finish.

Funny you mention the Navy, I was very close to enrolling in officer candidate school about 5 years ago, but couldn't for medical reasons.

You're probably right about focusing on a couple of specific positions/companies. Again, it's something I've thought about and done before, but I guess the panic of not having a job has thrown me off of plan occasionally.


Developer is a broad concept.

There are many levels of abstraction between electrons messing around to one click voila you just made a mobile app that works! Accordingly, there are many job/work opportunities on each level. Know on which level do you fit and exploit it. Currently, demand is huge on ALL levels! I do not know a single developer/programmer that fails to find work.

Over 10 years ago I was walking into an interview to decide upon my admission to a CS MS degree. This was after 5-6 years off college and working as a freelancer all that time. The interviewer said more or less this: you do not have the required skills, all these years you have been doing 'business software' using VB and that is 'useless' here. You'd have to do/repeat a year of undergrad before we consider you elegible. Naturally, I felt like crap. But she was right, I was not the guy who could build an OS (nor wanted to). However, I was really good at helping business solve problems with IT. That was the abstraction level where I fit quite nicely. I walked across campus and signed up for an MBA with MIS focus. Best career decision ever!

So I am not a hacker but I am a 'good enough' developer that has seen clients coming in since the day I left college. I moved away from VB many years ago but I continue to help business with IT b/c that's where I fit, b/c that's what I love to do ;)


I've always had trouble getting programming jobs, apart from the very first job I got which I got by a combination of knowing the guy and exaggerating my skills (also it was frightfully low pay).

At various times during my freelance career, thing were so bad that I dusted off my resume and went out to try and find something permanent ... I never could.

A mixture of dealing very badly with recruiters (whom I consider to be pure satan spawn) and good luck of finding another freelance gig "just in time" has always kept me off full time payrolls.

On the one hand it would have been way easier to be earning a great salary while I saved up and then finally "cut loose" to launch my own company, but being forced (somewhat) into freelancing has had beneficial side effects; mostly that I now run a business that actually has some promise of turning into a saleable asset and allows me to live where and how I want to.

I also made things harder for myself by being too obsessed with the particulars of the technology I used and a heavy dose of NIH (not invented here) so I wasted a shit tonne of time writing code that was never really used.

If I had my time over again I would probably have focussed on flipping wordpress sites at a margin sufficient to give me time to work on other stuff. That type of consulting is also pretty easy to systemise, meaning you can hire people to do lots of the work for you once you've figured out how to get customers.

You probably have a lot to offer as a "consultant" because you have a general understanding of how shit works, you can communicate well with business people and you can put together a team who can achieve a specific goal.

The challenge, of course, is that no-one will give you that job. Fortunately it's not impossible to just go out there and create that job for yourself.


I feel like my experience is naturally pushing me to what you describe. I've been trying to look at not being able to get a job from that perspective. I love programming, and have the business understanding like you mention, so maybe that's the play.

Certain people I've worked with keep telling me to apply, apply, apply to jobs. But I feel like the rejection/frustration/disappointment ("Oh, we love you! Buuut, you're not good enough at TDD yet.") just hampers my longterm efforts.

Anyway, thanks for your thoughts!


Good luck and if you want to chat about it my email is in my profile.


For one thing, don't compare yourself to a lot of the HN or Silicon Valley crowd. There're plenty of really smart people on here, so your perception of what's normal may get skewed.

Can you be hired as a developer? It sounds like you've produced some code and even got paid for doing it! From personal experience, I have met plenty of "professional programmers" who are paid decent salaries, yet are terrible or mediocre programmers.

The "rock stars" or genius coders out there are outliers. The average programmer is actually quite mediocre.

I'm not saying aim to be mediocre. But I am saying don't be intimidated by the stories of outliers.

There is a lot to learn, and it never ends. It's a path of continuous learning and improvement. So keep coding and working, and you'll eventually get there.

On a more explicit piece of advice, perhaps something is wrong with your resume or cover letter? Have people peer review or critique it, maybe it needs fixing.


My resume is pretty well tweaked and has gotten positive feedback, so I don't think it's the problem. I think it's what you said: continuous learning and improvement. This last contract I was on kind of set me back skill-wise (but helped in some other, more meta areas), so I need to be really be conscious of making some commits for my own projects every day. Thank you for the encouragement, and great points!


It's who you know and sometimes also what you know.

If you're a super-master 21 year old with a Masters in CS and triple-majored in physics, math and CS and finished your undergrad degree at 17, then you are an exception and companies will want you because they know you are a rare gem.

In the case of everyone else (wordpress/CMS people, basic app-builders, etc.) who you know matters too.

There exists such a massive glut of incompetent PHP programmers hacking through WP and Joomla sites and they're getting along just fine.

Knowing people really does help get you past the HR department, as you'll probably get a direct referral to the actual person who will hire you.

You haven't mentioned what your skills are though.

Are you a Ruby/Rails programmer? frontend/backend JS programmer? Java dev?

Your actual coding language and location matter too.


"Maybe I'm just being impatient, but I hear stories of people going from zero to a junior dev job in a matter of 3-6 months."

Not bloody likely! Those people are frauds and get through the recruitment processes by talking the talk and being "nice." Going from zero, you need at minimum 3 years of 4 hours/day hard practice to be competent. Anyone can do it as long as they don't give up.


I went from having very little development knowledge and a strong proclivity for computers, to getting a junior dev job at a fairly prominent agency in our area, in about 6 months. Now (a year later) I'm leading my first project and am an office authority on front-end dev and design (and fairly competent with Node.js, still not on a senior level within our company but getting there).

I've had the benefit of learning under and alongside some amazing developers over the past year, and to be honest they took a pretty big chance on me with the hire. I just want to put out there that it IS possible to become not only employable, but legitimately valuable, in under a year. You just have to be willing to put in the effort.

In the beginning, I was teaching myself to design and code for about 6 hours a day. My fiancé was supporting me during this time, and I'm incredibly grateful to her for that; if I only had 2-4 hours a day to learn, I doubt I would have made the progress I did during that time, and it wouldn't be the provider I now am for her and my 1-year-old son.


But the op wrote "going from zero" which makes it different from your journey. Of course no one can refute your story, but ime that quick progress is very uncommon. It's the computing worlds equivalent of "bought a guitar six months ago and now I'm signed to a record label!"


>Going from zero, you need at minimum 3 years of 4 hours/day hard practice to be competent.

3 years for a junior position?

The 6 month success stories likely know people willing to take the risk of a 6 month programmer, but 3 years seems excessive for a junior position.


In 3 years, a very intelligent person should be almost ready for an absolute entry-level position.

In a year or two you should be ready to intern.

A more likely timespan, if you want to produce good developers, is five years with four years of study and one year of internships (in 3 month chunks). This is the co-op model adopted by Waterloo and it produces excellent entry-level developers.

If you want to be a reasonable developer, you cannot get away without being expert at least one low-level language (C or C++), one high-level language (Python, Ruby, LISP, etc), some knowledge of OS fundamentals (threads, processes, filesystems), some knowledge of concurrency (threads, locks, message passing), understand how to design your own language and build a compiler or interpreter (Flex/Bison, lex/yacc, etc), and a good base in discrete math (at the minimum, ideally some knowledge of numerical analysis and probability would be very useful as well).

This is exactly what you'd learn in four years of full-time study at a good university.

Why do you expect to become a good developer in 6 months by yourself when extremely intelligent people need four years of being taught (and being taught by a good teacher will normally accelerate your learning by 10x) to reach the entry-level stage?

You are being too hard on yourself. A year is nothing. Give yourself a few more years if you really love it and can afford to do so.


>If you want to be a reasonable developer, you cannot get away without being expert at least one low-level language (C or C++), one high-level language (Python, Ruby, LISP, etc), some knowledge of OS fundamentals (threads, processes, filesystems), some knowledge of concurrency (threads, locks, message passing), understand how to design your own language and build a compiler or interpreter (Flex/Bison, lex/yacc, etc), and a good base in discrete math (at the minimum, ideally some knowledge of numerical analysis and probability would be very useful as well).

Okay, so I think when the OP was talking about 3-6 months for a developer job, they were referring to web dev. That is where I have seen the most "6 months to a position" stories. You certainly don't need all of that knowledge to put together a crud app or a front end with all of the frameworks and templates available.

You do need that knowledge when your app/site suddenly explodes with millions of users and your backend has gone thermonuclear due to being unoptimized.

In this case, the body of knowledge for a web developer is much smaller: HTML/CSS/JavaScript/A few frameworks. This is much more appropriate for the 1-3 year span.

Some quick google searches:

http://learnwithjeff.com/blog/2012/08/21/how-to-get-a-job-as...

http://www.codeconquest.com/what-is-coding/programmer-6-mont...

http://freelancefolder.com/how-to-become-a-freelance-web-dev...

Note: I know these are basically blogs with probably zero credibility here, but I've had a few conversations which basically said the same thing + 6 months extra time to be conservative.


For those of us who were around during the 2001 web bust, we know that those "web dev" jobs will quickly disappear when the bubble bursts. That's exactly what happened to the "HTML and XML developers" around 2003, and it'll happen again to the "HTML and JavaScript developers" in 2016.

If OP is serious about learning to program, then he should give himself more time and learn those other more valuable skills which will make the change of career worthwhile, and not worry so much about mastering the latest fad technologies, demand for which will almost certainly evaporate within a few years.

Demand for computing is going to skyrocket, and if want computing to be a field of genuine professionals, its time we start holding ourselves and other engineers to a higher standard.


Even if it's slated to go boom, it's a position that pays and is a relevant resume mark. While doing web dev, study the 'real' stuff or specialize. Not all web dev positions will disappear if the market goes boom again, if it's even destined to go boom again. We're ALL rolling the dice at that point anyway.

But the point of the 6-month web developer as I've seen is to take the quickest route to nearly any paying job (some $10/hr "web dev" jobs aren't worth it) to A) cover bills, B) start on the experience record, C) surround yourself with people that at least know of programming. They may not be Dennis Ritchies or Guido van Rossums, but believe me when I say your motivation to learn more and stick with it skyrockets when you can carry on everyday conversations that pertain to your field of interest.


Exactly. Whole post on point.

Anyone's who been programming only 6months or less, you don't know $Hit about programming yet.


I see these stories quite a bit and they're kind of annoying. ex. 'How I switched my career, and tripled my salary, and became a software engineer, all in 8 weeks'.

Please. Many of my colleagues, and myself to an extent, have spent many many years since childhood preparing just to get into a reputable engineering school. Then it's 5 yrs of constant workload get the degree, whilst hustling doing coop. Then you get out in the real world, and life smacks you in the face, and you realize its only getting started and you're about at the bottom of the rung as can be.

To be honest, I get a little offended when someone goes through a couple tutorials, reads couple blogs, and suddenly they call themselves an engineer. I have friends who've been grinding out code since they were 10yrs old (now works for google), people have to realize programming and engineering takes a lot of hard work, it's not something you master over the course of a few weeks/months.


As a self-taught developer, I can see your point. Looking back to where I was when I got hired a year ago, I'm pretty astounded that I called myself a developer or a designer. I've since had the benefit of working with some really great developers, but even so I don't have a lot of what one might call "classical CS knowledge". I learned about Big O and hash tables within the past month. I've never implemented Quicksort. The kind of thing you need to get a job, but don't actually help you do it (during day-to-day web development, at least). I don't really see looking down on someone for lacking that area of knowledge as reasonable, but thinking that watching some videos and throwing together toy sites means you'll be able to handle the thousands of edge-cases that come up every day is pretty ridiculous. That's something you can really only get with experience.


'..but don't actually help you do it day-to-day'

Most of the time, but by understanding those core concepts, you're mind looks at programming and solving problems in a different way. Similar to math, you may never use a differential equation, but by understanding it, you look at the physical world and interpret it in a different way.

Not my intent to look down on anyone. My point is simply that software engineering is huge, you don't learn it in 2 months. Done traditionally or independently, my hats off to you. It's no easy task.


That's very true. Usually keeping common sense stuff in mind like "I'm having to touch the database multiple times" or "I'm maintaining 2 arrays for this operation instead of one" and realizing that those are red flags, gets you there in almost every case. I agree that those things probably do expand your understanding and allow you to consider problems in different ways (which may help you solve certain types of problems more easily). I also agree with your main point: there are very few people in the world who are likely to be able to (accurately) describe themselves as software developers with <1 year of experience/learning.


People 1-2 years out of college - with a CS major- should be in a junior position, and they had 4 solid years plus internships...

Even if their title is not "junior", that's just to compensate for bad salary with ego inflation. In a corporate environment, I have never met someone with <3 years exp whom I would not consider junior.


Well, everyone seems to have their own idea of what constitutes a competent developer, and also how long it takes to acquire that competence for the average tech-literate person (as I assume the OP is since he's here).

I wrote off the people doing it in 6 months, but a year or two seemed much more reasonable. Previously I've read that a year or two is doable, but now I have to write those people off. So now 3 years is the minimum for any sort of job?

What if I run into someone who says 5 years is the minimum for a position?


https://news.ycombinator.com/item?id=7578365 talks about this.

Keep in mind that because of the constant job-hopping society seems to be forcing on most developers (either stand still in your career, or job-hop), you should treat this as a single isolated game of prisoner's dilemma with participants that will never play again. In other words, there's only one winning strategy : always betray the company. In this case that would mean say whatever needs to be said to get you hired/an offer. Also this works reasonably well in normal situations as well, if you're negotiating about anything, make it clear that your default first play in the prisoner's dilemma is to betray, but it's up for negotiation. If you don't do this, any sales/management drone worth his salt will immediately exploit this.

If you don't know yourself, and have attempted and failed to look this up, why do you assume the other person knows, really ? Either the other person is competent or not (ask a really difficult but slightly wrong question to find out, in a roundabout way, like "I can't get my head wrapped around how 'static' affects global versus local variables. It makes global variables no longer stack allocated, but what does it do to local variables ?". It's a nice obvious error that shouldn't make a capable person think worse of you, because it gives the perfect explanation, just assigns it to the opposite concept it should be assigned to).

If they don't catch the error, assume they don't know anything, because they're a manager or HR drone checking boxes. The only thing to do is get past them. For the love of God, don't tell them they missed the error. Frankly, you'll be doing both yourself and your future team a favor by inaccurately checking their boxes. Also, getting past them is a good exercise in corporate skills, if you get hired, it won't be the last time you need to get past them. If you feel like honesty is a value, I would advise you to save your perfect honesty for obviously technical people, not for management. Don't outright lie, but absolutely try to avoid saying "no" because of technicalities. "Do you have experience with windows vista ?" -> "I have experience with windows".

Keep in mind that the interviewer may be trying to do the same, stating an obviously wrong fact and asking you to check that box. "Do you know java 9 ?" is way too obvious, but something along the lines might be asked. Best answer to this is to inquire, not directly state it doesn't exist. E.g. "I'm following the java 8 updates, and there are some proposals that have been decided to be beyond java 8, but to my knowledge there is no java 9 software existing outside of Oracle. Can you clarify ?"


That makes feel a little better about the situation, thanks!


I went from zero programming experience (English major) to a dev job in about a year and a half. There is a LOT of luck involved. In my case, I knew someone at the company where I got hired, and was hired for a sort of 'unspecified assistant / other' position, and took on every single 'hey we need a script to...' task I could find until they gave me bigger projects. You need a story besides "I am a developer" to get your foot in the door, and your business degree is probably the place to start. What insights could your programming experience give you that a person with a comparable background would never have? What kinds of product opportunities could you spot that a great developer might not notice? So my first piece of advice is about your objective. Try to find the specific combination of skills and interests that you have that few other people have, and then think about where all of them might be useful.

My second piece of advice is about your skill set. As someone who is mostly self-taught, it's going to be hard for you to get people to give your work serious consideration. Your reference projects should demonstrate a serious focus on readability, documentation, and testing. I advocate for those things in general, but people like you and me actually have something to prove, and we may not get many chances to show off. So when you learn a new framework or language, make sure you understand the preferred style for code and docs, the way projects are usually organized, and one popular testing framework. Those things will reassure employers that you are serious about doing a good job, not just copying the most-complete stackexchange answer and tweaking it until it works.

Good luck.


The answer to all such questions should be:

"As early as you can."

Here's the reasoning. If you are doing what you love to do, it should be nearly impossible to stop doing it. If you are doing what you love to do you will try to do it as often as you can, so regardless of your intelligence, current skills, or general aptitude you will continue to improve until you are at the best of your abilities. If you are smart enough to post on HN, then you've passed the "am I smart enough" test. From that point on it is only a matter of when, not if.

What do you find yourself doing all the time (everything included)? That is, or is closely related to what you should do. If it isn't programming then programming isn't what you should be doing, and you should exit ASAP so you can pursue the thing you truly enjoy and therefore will excel at.

For reference you should consider reading "Outliers" [0] by Malcolm Gladwell, and check out Simon Sinek's talk [1] about marketing and how leaders inspire action. In particular the segment about the wright brothers vs Samuel Pierpont Langley starting ~7:50

[0] http://en.wikipedia.org/wiki/Outliers_(book)

[1] https://www.ted.com/talks/simon_sinek_how_great_leaders_insp...


You don't have to program all the time to be a good developer. We don't expect good members of other skills to spend the majority of their free time on that area. Well-roundedness is a good thing. I'm sure a lot of good programmers might find themselves spending a decent chunk of time on movies, video games, social activities, reading, etc.


Absolutely true. I didn't mean to imply that doing what you love to do means doing it literally 100% of your time. It's simply what you tend to do when you have a choice of anything at all.

If on the other hand you are always playing music; playing it for fun in your free time, taking classes, and tend to get busted slacking at your programming job because you are talking about or playing music too much. Than perhaps programming isn't what you should be doing.


I've done the same thing but at this point I've probably sent out job email inquiries in the 1000's ( plus I'm in my later 30's ). The narrative of someone being a nobody to super-hero is nice but keep in mind those stories have a tendency to blur reality. In short, you don't hear about the failures, the grit, the work and the more human costs of getting out of a bad situation.

My advice is not to let your mind get locked into thinking that you must 'be a dev'. What you need to do is continue to develop your skill palette and explore what exists for that palette. You might end up doing things that use your programming abilities daily of which is not a 'dev' role. Currently I'm doing some work where I research something technical and then do tutorial videos for it. I'm barley getting by but this is an area I'm kind of good at because I know what it feels like to know absolutely nothing hence I try and explain things as simply and as 'to-the-root' as possible.

If you like making things with computers you're always going to do it. The question is how to bend your own interests to fit with the economic order in a manner where you're on the beneficiary end of it.

I'll leave by encouraging you to check a book called "Mastery" by Robert Greene.


I think the thing that separates a good programmer/developer/engineer is they enjoy doing it and, luckily, they can get paid for it. It is probably something they would be doing anyway if they weren't doing it professionally.

At 30, it is time to take stock and ask yourself, "do I enjoy doing this" or "do I enjoy the idea of doing this"?

If you enjoy it, keep doing it.

Some things I would recommend:

* Get a Github account and put some of your work out there

* Get on Stack Overflow and try to answer some questions

* Pick a small, self-interest project in an area you would like to work in and do the project from start to finish, as if you were getting paid for it.

* Look at other similar projects on Github and see how other do it.

I write software for money, and the thing I think most teams want is someone who can: + write good code that works + plays well with others + does stuff like they do

For instance, you may write totally amazing software, but if it is in a different language, with different tools, and your an arsehole, then nobody wants you on their team.

There is also a minimum level of entry because not many busy teams want to have to train someone from the ground up.

For that problem (i.e. self-training), I would try to find other people with about the same level of understanding with similar programming interests. Then try to do a project as a team. It will give you great insight into how to communicate as a software engineer (i.e. mainly through disciplined use of a version control system like git). If you can learn how to make great git commits, then you will find yourself in demand.

Good luck!


OP here, just wanted to say thank you so much to everyone who posted. I tried to respond to everyone's comments/questions individually, but HN was saying I was posting too fast after posting just one comment.

In response to some questions/comments:

I have read George Leonard's "Mastery" and it is extraordinarily relevant in this case. I'm reassured to hear from everyone posting here that if I put in the work, I'll get to where I want to be (eventually).

Re code samples: this isn't my regular account, so I'm not really comfortable sharing in the context of this post. I wouldn't want potential employers and people I'm working with now to see that I'm having these kind of doubts.

I'll try to stop being so hard on myself, and stop comparing myself to others. My only competition is myself.

Anyhow, this community never ceases to amaze and inspire me. So, again, THANK YOU! I'll be coming here for inspiration when I need it.


You are being impatient and at risk of giving up prematurely.

Read .. Mastery by George Leonard

http://www.amazon.com/Mastery-Keys-Success-Long-Term-Fulfill...

Get a mentor

Write code every day

http://norvig.com/21-days.html

Ask for feedback

Learn the culture. Watch the movies Hackers. Learn perl, C, or BASIC.

Install Linux on your main computer.

Find an open source project and contribute to it. Even if it's just documentation.

http://www.stevepavlina.com/blog/2005/09/overwhelming-force/


If you don't mind sharing it, some additional information might give people more insight into what's happening:

- How old are you?

- What's your educational background?

- Are you looking for jobs in Silicon Valley startups or in other kinds of companies somewhere else?


Responding to Joseph's comment here since I can't reply directly for some reason. Re Dev Bootcamps: I applied to and interviewed with a bunch of them about 6 months ago.

Didn't even hear back from gSchool. Didn't get into App Academy (it was almost as if you already needed to know how to code to get in). Didn't get into Hacker School. Couldn't move to SF for Hack Reactor.

At this point, I'm not sure I'm willing to put up the majority of my remaining savings when I'm not even sure I'm fit to be a developer.


I'm not sure what "fit to be a developer" means. People (with very few exceptions) are not born with labels that say "able to write software professionally" or "not able to write software professionally". Try to understand what has prevented you from landing jobs so far. Go through http://sijinjoseph.com/programmer-competency-matrix/ to determine what you lack, and then work on improving those. (Not saying that that link is the ultimate criteria for determining one's suitability as a programmer, just that if you really don't know what you're missing, it will give you some ideas)


I don't like the part about "no circular dependencies." If the language supports it, such as in c#, then why not? There are cases where you want Class A to use a B and Class B to use an A. Unless that's not the kind that they're talking about.


Well you've probably learned and improved in the six months since you last applied, so maybe it's a good time to try again? From what you've posted, a Dev Bootcamp seems like it could be just what you need to get over the hump. Good luck, try not to get discouraged if you enjoy this stuff! :)


Instead of spending money on a dev boot camp maybe try going through The Odin Project, and beefing up your github. Then maybe join TreeHouse temporarily just to have them help you find a job.

http://www.theodinproject.com/


Around 30 years old, undergrad business degree from a decent state school, and looking everywhere (SV, NYC, LA-area, local area, etc.).


If you have money for Dev Bootcamp or some of the others[1], they help massively with job placement. This is from word of mouth, not personal experience.

[1] http://www.skilledup.com/learn/programming/the-ultimate-guid...


i've heard the opposite, but that might only be through the negative lens of cynical reporters.

Going through a dev bootcamp no longer makes you stand out, imo.

They are basically unlicensed diploma mills though, and considering the glut of them I would not be that comfortable recommending people pay good money for them.

Source: I worked (briefly) for a diploma mill 15 years ago, and I've seen the kind of heartbreak they can cause.


I think there is definite misinformation in this thread. You can definitely do it assuming you have a lot of grit and passion.

It took me roughly 2 months of intense work to go from being a middle school teacher to getting my first software engineering job in SF without any bootcamps. We currently run a one-to-one remote program that bring people from 0 to software engineer with part-time commitment in months to a year.

I would love to jump on a call with you to figure out what you've tried and tips on how to find your next job. My contact info is in my profile.


For me, just because I'm programming doesn't mean I'm learning. I can make an entire site without learning anything if I do it the way I already understand. The real learning comes in doing things differently. Spending your time on hitting the things you don't know really hard.

You say a challenge from an employee will take you multiples of X hours? Then practice it. Keep working at things that are hard and eventually they will come together and get easier.


Great points. I've got no problem with practicing stuff I don't understand (that's pretty fun usually).

If they say something should take X hours or less though, and I'd take at least double that, it worries me. Maybe the job is just beyond my skill level right now, I'm not sure.


I'm a manager of a small team and 2x wouldn't bother me too much as long as it was completed well enough that I didn't feel the need to rewrite it before it goes to production. Small things caught during code reviews don't bother me too much. Major gaps in fundamental understanding bother me a lot.

I currently have an ops guy trying to transition to development and he is seriously 10x on the 4 tasks I've given him recently and I will not use his work in production even after that work. He does the meetup thing and can talk the talk but I've had to completely write 3 of the 4 items myself and the 4th sits in the back of my mind. Only reason he still works for me is its hard to fill this specific ops role and he does that ok though I'm questioning that now as well. If you are 10x slower then yes please stop now.

Don't let that discourage you as you don't sound that far off the mark and maybe it will click but it does sound like you are probably at a disadvantage technically. If you get the opportunity focus on something else that differentiates you from the rest like documentation practices.


You should also keep in mind that most of those companies expect applicants to practice that kind of puzzles/code challenges before. A couple of years ago, I was also in a similar state-of-mind with you, but when I get to know people who got good developer jobs at top companies, they all suggested me to study code challenges/puzzles that can be found online. So imho, you should do more research on what type of questions people get to asked in the companies you are looking for, and just practice.


I don't have the stats, but most people knew someone at their current employer before they worked there. Nothing is a sure thing, but knowing someone there (and them knowing that you applied, really want the job) is the best way to tip the probability in your favor.

If you don't know someone at the current job you're at, figure out a way to meet them. It's very easy these days with social media, just favorite their tweets or attend meetups.


You might consider pursuing an apprenticeship in Software Craftsmanship. You would likely spend 6-9 months as an apprentice and potentially end up with a full time job. There are a number of companies in a number of countries that do the SC apprenticeship model. You have to look around for them though. Look for local SC meetups and go. Talk to the people who work at the company that does apprenticeships and see if it is a good fit.


Similar question: When is it time to stop being a developer? It seems like many companies have a very low average age. I don't think I know of a single person above 50 at mine. Where do they all go? Does everyone retire relatively early? Or do you actively have to seek out companies with older people (or start your own)? How many of you moved into some form of management or executive role after beginning as a developer?


Don't worry about test/challenges that are supposed to take X hours. That figure is more of a magnitude than specific time. I mostly spend 3*X on those I have looked at, and have mostly got through to an interview and offer afterwards. If you spend every evening in week on a 2 hour challenge then maybe it is an issue (or just a badly described test), but spending two or even three evenings on it is fine.


I am no expert in this, But In my experience thinking in logically makes you a better programmer. Without writing your code if you can walk through the process of how you're gonna implement it, you are a good developer.

I first saw a computer 8 years ago. started coding 4 years back, now I am the technical co-founder of a startup. I'm no expert but I can get the shit done.

Think like product, and the rest will fall in place.


It sounds a bit like an execution issue to me. Do you have any code samples, resume, etc. you could share?


Sounds like a networking issue rather then a skills issue. Start making contact with startups, design agencies that might do a bit of coding on the side. Approach them not to get a job, but just to have a face to face chat about what they do, if they have any advice for you.


Have you tried Craigslist? A lot of small businesses post on job ads on there and I don't think they would be as picky as a wannabe Fortune 500 company.

Also, try looking at jobs that require programming skills without explicitly being a "programming position."


Building a network takes time. Building a portfolio takes time.

Open source is the best way I know to do both, but it still takes a lot of investment from you.


>I get code challenges from employers that are supposed to take around X hours, yet I know that they'll take me multiple(s) of X to do well.

Yeah. Me to. I mean, employers don't give me 'build an app' challenges because I'm a sysadmin, not a programmer, but I'd have that trouble if I tried for a dev job, even though I know the languages and concepts involved. I have a really hard time finishing large and complex programming projects. The thing was? I found I was able to get things working better than most of my compatriots. I mean, part of that is I'm pretty good at reading code

I'm worlds better at reading code than at writing. I remember as a kid at my first programming job, I wrote a small patch to apache; this was in the late '90s, back when traversing a list of a million VirtualHost entries every time your webserver got a hit was a significant overhead. The first thing I did was that I read the apache docs. Turns out they have this "dynamically configured name-based virtual hosting" module NameVirtualHost: - it builds the DocumentRoot from parts of the domain.

The problem was that at the time it parsed the domain on the '.' separators; you could specify domain componets starting at the begining or the end. If every domain is unique, that's fine, www.bob.com and bob.com have different directories. but the boss wanted www.something to be the same as something. And I couldn't just take the last and second to last, because we had both .com and .co.uk customers.

Now, I could have just symlinked /var/www/www.bob.com to /var/www/bob.com and have been done with it, but for some reason that wasn't an acceptable solution. I don't remember why. Anyhow, I went into the mod_vhost_alias source file, and added a new token... this was the whole domain, but with the www stripped off, so it would always go to /var/www/bob.com even if the user asked for www.bob.com.

Our webservers became massively faster, almost instantly.

But the point? Oh yeah, I spent maybe an hour figuring out where to insert my three lines of code, then the better part of a day actually writing the code. which is probably the opposite of how it would have gone for someone who was a programmer, and not a sysadmin.

But yeah, one day of work and our website went from 'dog slow' to 'reasonable' with no hardware outlay. I did something similar to our pop3 sharding redirector; it was using a directory with several million files in it to look up who was on what server. I loaded the data into mysql; again, like five lines of C and pop3 logins went from 30 seconds of waiting down to under 1 second, with no hardware outlays.

I guess my point here is that there are niches for programmers who are slow, or who can read code but can't write complex and large things.

I'm a SysAdmin, and my job is to understand a large and complex system that someone else wrote; to understand it well enough that I can fix it when it breaks. As I become more senior, my job more and more is helping set up the network and operating system side of a large application. It's a valuable niche, but there are some downsides. Generally speaking, as a SysAdmin, you have to carry a pager. As you become more senior, that is less true, but if your underlings can't figure it out and you were unreachable? Yeah, it's going to be bad for you.

Still, the pay is good and as long as you answer your pager, the hours are usually very flexible.

I'm not suggesting you set out to be a SysAdmin. I didn't set out to be a SysAdmin; it just turned out that I was way better at understanding and fixing existing systems; at gluing together building blocks built by others than I was at programming large and complex systems from scratch, so I naturally moved out of the application programmer role and into this new role where I was getting interesting things done.

My suggestion to you? Get a programming job of some stripe. Offer to work for $20/hr if you have to, just get a job. Find your niche; figure out what part of the process you are good at, and move in that direction.

Other people are suggesting doing your own thing... which is a fine thing to do, but if you are like me, building up a new app from scratch is going to be way harder than finding and fixing problems in an existing application... and the latter can be just as valuable to an employer.

The key takaway I'm trying to give you in this giant wall of text is that there are valuable roles at companies for people who can't build an application soup to nuts. It's okay if you only know a small part of the process.

But it's important to figure out what part of the process you can be good at, and I think the best way to do that is to get a job, even if it's a lower-paid job.


Until it's a burden for your and/or you can't live out of it.


This is the best answer so far, I also like programming but I am not sure if I'll ever be able to make a living out of it. Either way my free time will always be spent the way I like! XD




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

Search: