Your story is heartening. I wish it would work for me. Nothing really makes me happy or interested. I could lay in bed all day if I didn't force myself to get out.
I think it's great that you didn't have any formal education, and you have gone farther than me, someone with formal education and 'seven years' of experience.
> guess what I am trying to say is: - dont give up - expect success over time (1-2 years as a bare minimum) -
I've been unemployed for a year. I think my career is over. Other, better people can do more.
> Nothing really makes me happy or interested. I could lay in bed all day if I didn't force myself to get out.
This is a sign of depression. Talk to a doctor. It's possible that clinical depression is holding you back. It destroys your motivation and makes it hard to find joy in anything. And it's hard to get better in something that you don't enjoy and aren't really interested in.
> I've been unemployed for a year. I think my career is over. Other, better people can do more.
That sounds like the depression talking. Don't listen to it. Fix the depression (easier said than done, but it can be done), and the rest will get a lot easier.
I've been unemployed for over a year once, and completely wasted that year (I should have done private programming projects, but instead I wasted it gaming and sleeping late), but now my career is doing great.
A close friend had dropped out of programming completely due to RSI, and after many years of not touching a computer, tried to start his own company (selling computer generated puzzles), which failed, but it did get him enough hands on experience to get a regular programming job. His career has lost some time, but is otherwise doing fine.
Another friend went suffered from depression and addiction, went through years of therapy, got his life back on track, and now has an excellent job in programming.
It is possible to get back in the saddle. It's not always easy, and it can mean you have to take care of other problems first, but it can be done. Take hope in that. Get help, get to the root of the problem, fix that, and your career will get easier in time.
What bootcamp did you take? How did it go and what did you learn? Can you share us examples of projects you did during this bootcamp? Where are you located? It does sound like you might be clinically depressed and should seek treatment for that. Otherwise you might have to just take a break from doing programming jobs and just apply to any related type job such as QA and work your way back into dev. As you stated your years of experience havn't helped you in the interview process and most dev interviews weed out weak candidates pretty quickly.
JavaScript/Ruby are very employable skills and there's no shortage of places that need them. If you have the time, I'd give it a try since there's nothing to lose (you don't pay them if you don't get a job).
I'm going to go out on a limb here and say that OP probably doesn't have the appropriate cognitive disposition for programming as a career.
He referred to himself as normal; software programmers as a group have an IQ metric well above normal. BY NO MEANS am I suggesting that he is not smart; in fact, he should trust his feelings even more. Just because he is not a desirable programmer does not mean that he isn't welcomed by the tech community and industry; this thread is clear evidence of that.
There are many lucrative roles in tech that do not rely on programming as a primary activity.
I get the tripe of what you mean, but perhaps I fail at failing, then. I don't really learn anything. Everything I do is wrong, I'm told.
I wish antidepressents would work. If I could cut out parts of my brain and be better, I would.
I just don't get it. Everyone else has done something right or at least better. People say things and everyone else gets it. I've been working for seven years, unemployed for one year. I had a job for a month and they fired me because I didn't have the skills they needed (not sucking, being experienced, nothing tech specific).
> I've been working for seven years, unemployed for one year. I had a job for a month and they fired me because I didn't have the skills they needed (not sucking, being experienced, nothing tech specific).
So you have held onto a job for 7 years. You can do that again! Being unemployed sucks, but it has happened to most people at some time in their life. Getting fired is not fun, but that too has happened to lots of people. You're not alone.
I don't know what my pay grade is, or how to feature the data I get. I do ask for feedback from interviewers; they usually don't response. When they do, I get conflicting answers.
Interviews have to be carefully constructed to avoid a bunch of bias. The interviews you go to probably aren't carefully constructed.
The interviewers just pick someone. They then post-rationalise and say things like "cultural fit". And then, when any other candidate asks the interviewers will post rationalise a reason those candidates didn't get the job. You get conflicting answers because they're all just making it up.
You frame not being sucessful as failure. Sure, it is. It might be useful to reframe things. Getting a job is an iterative process. You apply for jobs. If you don't get replies you tweak your resumé and cover letter until you get responses and requests to interview. You're getting interviews so that already some sucess! Now you just need to tweak your interview technique to get a job.
There are people who can help. There are probably recruiters that can help - although finding a non-scumbag recruiter may be difficult. Perhaps there is someone on HN who can help?
C/C++, learning python, ruby over the lst couple of years. Been working for several years, graduated with bachelors from a cow college no one has heard of.
bug fixing. that's all i've ever done. anytime i try to move into a dev role they shut me out. Writing new code was not an option; tinkering with new code was not really allowed. I thought about what I could do to make things better but they're already fairly optimzed. doesn't matter, I'd just make it worse.
I think it would be worth stepping back and taking a higher level view of your skills, in order to see where you are best suited and can provide value.
For example, I know that I am only an average programmer when it comes to detailed systems level work. I would fail at a Google style interview because I do not know the Big O values for common algorithms. I cannot tell you how a Red-Black tree works without having to look it up. But I discovered that I was very fast at writing software of average difficulty that has few bugs. So I work at a small company and crank out lots of software that saves the company money by automating manual processes. By aligning my best skills with a company that needs them it becomes a win/win.
Maybe in your case you are very detailed orientated and so software testing would be a good fit. Maybe you are great at translating users needs into requirements and so should be a business analyst. Maybe you have a wide range of skills but lack depth in one area, so work as a jack-of-all trades in a small company. Stop thinking only about your ability to write some code and look at the wider context and where you best fit in.
It's a good interactive method to constantly challenge yourself into remembering and learning material.
Basically, what you're supposed to do when you're actively reading material. I never really learned how to study until later in life but apparently this is how you're supposed to do it.
I think we don't see it a lot in many classrooms because of economy of scale. When I was in school, we had a professor who did this with his smaller class on computer networks but seems like maybe didn't in his larger classes. He'd ask questions but so many people trying to answer, less time for personal answers (which was fine with me since I was always the slowest person in the room).
I was fortunate in my schooling. From 6-11 I was at a boarding school in the country, and we had classes of 12 or so at the most.
The three science and geography teachers (overlap, in the most excellent fashion) were autodidacts who believed everybody else could be too - and proved it in shovels. I recall the phrase "now why do YOU think ...?" being almost percussion in lessons - almost everything was "you figure it out and then let's bash heads and figure out what's right".
Nothing beat first hand experience. If we were studying population density, we'd be taken to a nearby town and would spend a Sunday measuring frontages and documenting usage, to then graph the data and draw our own conclusions. The fascinating takeaway on that was that houses nearer water were usually poorer - rich folks could afford to live up hills and have water carried to them. Properties get rebuilt, frontages have a habit of staying the same, or in multiples of their original size. Stuff I would not know or even think about were it not for this experience. Chemistry was always "here's the thing you need to do. Here's a mystery bag of reagents and kit. Figure it out. I'll keep an eye in case you stray into danger." Two examples, but it was the core of how they taught sciences - make us do our own investigations, and ask us the right questions to precipitate the correct lines of thought. They nudged me into coding the same way - "there are some dusty old BBC micros and some magazines about how to use them in the basement. You guys figure it out.". We figured it out so well that we got the machine with the vocaliser to cuss at the teacher when he entered input into a fake basic prompt, and went on to make a "Hugo" clone set at the school. Also just recalled being taught normal distributions by being told to go count car colours outside the school gates.
Anyway, the upshot is that from that class, of those I've kept in touch, all still have a childlike curiosity about the world, myself included.
I think we were taught to think for ourselves in the most earnest way - something which is increasingly missing in education today. Fuck, we were allowed access to guns, a deep lake with floating islands, abandoned underground cool stores - all on trust alone - and if you violated that trust you lost it, and you were punished. The bog-eye. Shudder.
Also there's a relationship between remembering and understanding. Sometimes just remembering a lot of premises is the only way to be able to really understand them later on (because they fit in your brain cache -- programmer analogy). Many times a concept became clear to me after a while, even though I did nothing special, but the pieces and their relationship became familiar enough to be meaningful. Some mathematicians said it better, it still feels weird anyway.
> Go solo. At 40 you should be experienced enough to handle up to mid-sized projects, alone and on a reasonable time-frame. Try to pick projects that your clients will actually use,
This is fantastic, and makes me hopeful. I'm almost 40 and no real career accomplishments but there's still time for me, maybe, before I just decide to hang it up and just go home.
The article focuses on the fact that as programmers age past 30 their salaries grow but they have roughly the same skills. But that is not the main dynamic here. The main dynamic is that as a person's brain ages, it improves in some ways and gets worse in others. The improvement is that you have more depth and experience. The loss is that your brain gets slower and less flexible.
Unfortunately, in computer programming you will run out of experience and depth that you can accumulate after about 8-10 years of work (say ages 22 - 32). Every new technology is just a variant of the previous 999 technologies. But you still keep getting older every year, and incurring the downsides of getting older!
Compare this with, say, being a doctor. A doctor at 32 is just finishing residency, so he or she has just finished formal education. At 42, she has 10 years of experience, and a doctor with 10 years of experience is better than one fresh out of school. The doctor keeps getting better at 52 (20 years of experience) and 62 (30 years of experience).
The big picture is that computer programming is a field with low barriers to entry and where young people have a significant advantage. Staying in a field like that for the long run is going to lead to a brutish brutish existence.
There are many posts here along the lines of "I'm 39 and still doing ok". That's beside the point, because in the future you will be 49, then 57, then 65. Remember, Social Security full retirement age is 67.
It doesn't make sense to wait until you are 40 to switch. Every career field accepts young people easier than old people, which means that the time to start planning your switch is today.
> Unfortunately, in computer programming you will run out of experience and depth that you can accumulate after about 8-10 years of work (say ages 22 - 32). Every new technology is just a variant of the previous 999 technologies. But you still keep getting older every year, and incurring the downsides of getting older!
I'm going to call bullshit on that. There are a lot of recycled technologies (especially in web), but the notion that after 8 years you know all there is to know -- that's absurd.
I just turned 30. I work with people both older and younger than me, but I learn way more from the 40+ year old people in my office than I do from the 20 year olds.
Like the parent tried to explain, different fields (programming, law, medicine, etc) have different experience curves.
There is definitely enough in programming to learn for 200 years, if we lived that long. It's just that when programming in area E, a 47 yo who learned A, B, C, D, and E does not have an advantage over a 32 yo who learned B, D, and E. But the 32 yo has the advantage of his youth.
I also don't get all the "I'm 30 and I'm doing ok" statements. The article is about issues you'll experience when you're 45 .. 49 .. 55 .. 59 .. 63 .. etc.
Edit: let me do an easy computation for you. Time from age 22 to age 32 = 10 years. Time from age 22 to age 67 = 45 years. Big difference!
>It's just that when programming in area E, a 47 yo who learned A, B, C, D, and E does not have an advantage over a 32 yo who learned B, D, and E.
Then maybe task E is not the right task for the 47 year old? Maybe when building another accounting system it's enough to know all about accounting systems, but the closer you get to the cutting edge the more useful broad knowledge gets.
For example there is just about nobody with 5 years of experience in VR-technology, but if you have worked in a number of even slightly related fields in the last 20 years you probably can bring a lot to the table.
But one of them has 15 years more time to get experience in a number of fields (or in depth in one or two fields). I think 15 years is enough to still make a difference in this regard.
I understood his argument, despite what your condescending comment suggests, I just reject the premise it's built on. His premise is that in 8-10 years of experience you will be "max-level-programmer" and after that point there's not much worth learning, and you're a depreciating asset and you should parlay your experience into something else.
The ageism in the tech field should bother everyone, because you too are one day going to be old.
I didn't mean for my comment to be condescending - sorry about that.
I was a computer programmer from 20 to 21 (I worked full time in college), and I changed fields at 21. I am in my 30s now. I didn't figure out these dynamics by myself - I was fortunate that my manager at the time was also changing fields, and he explained these things to me. He was in his early 30s and he became a doctor.
Now I am just trying to return the favor by describing these things to younger people on HN. And I read HN for kicks. :)
I'm quite sure there's more to software engineering than can be learned in 8-10 years. I spent 7 years working with one tiny part of formal software verification, and still didn't get to the bottom of it. Perhaps it's true in web development, where it does really seem like the industry is
recycling ideas every 18 months. But there's far more depth to the field than just "JavaScript framework n+1" and "Yet another task running tool fundamentally identical to the previous 328, but written by a fashionable company".
The point is not that there is nothing to learn after 8-10 years. There is enough to learn for multiple lifetimes. The point is that after 8-10 years additional learning/experience will not give you a competitive advantage compared to younger programmers.
Also, I can see why someone would downvote my post above, since it describes an unpleasant reality. But I think it is crucial for young programmers to be aware of this dynamic!
You're getting down votes because it's simply not true. It's not about age it's about the person. And it couldn't be more wrong to say that there's nothing to learn after 8-10 years, even in web.
But let's talk about the competitive advantage part of your argument.
Personally, I have spent 20 years collapsing and simplifying "everything" in my work product. IE ui design, coding patterns, and all other aspects of my tech related work product.
Whenever I show my code to new devs they usually say "yup I get it, it's easy". But it's not easy, I just spent a crap load of time thinking about those patterns over the years making them easier and easier over every iteration.
So, that's one competitive advantage right there.
But another competitive advantage polyglot old guys have. They can truly be a full stack developers taking an idea from mockup to web and mobile and completely scaled distributed systems.
It's VERY hard for anyone to do that without putting in 10-15 years because each discipline (design, mockup, mobile, architecture, scaling, etc.) takes a lot of time and effort to master. That said I have met 30 year olds who started at 15 who could do that too.
I think of it like the CEO who worked his way up from the mail room, he's seen every part of the company inside and out and that's why he's so good at building companies now.
Look, I agree with your suggestions. But each of the things you suggest (improve yourself, become full stack, maintain mental elasticity) falls in the category "try harder". That only works with things you can control.
There are also things you cannot control - changes to your brain as you get older, the kinds of jobs that are available, what other computer programmers specialize in. These are your odds.
Your success is a function of your efforts and your odds. Success = f(try harder, your odds). Since you are human, you can choose your path, and it doesn't make sense to choose a path where the odds decline so dramatically as you get to 46 ... 58 ... 63 ...
Sure it does (at least, as much as any other "intellectual" field, like accounting or law). Do you want the guy who knows X (or 3 variants of X, each sequentially in fashion)? Or the guy who knows X, Y and Z?
The key is, no matter the age, to keep expanding your knowledge base.
Well, different intellectual fields have different experience curves.
Accounting, medicine, law all have much longer experience curves. Accounting also has significant barriers to entry (though not as high as medicine). Law has lower barriers to entry and you can see them facing a wave of unemployed lawyers and closing law schools right about now. Etc ...
> The big picture is that computer programming is a field with low barriers to entry and where young people have a significant advantage.
Computer programming isn't just one field, there're several completely different fields. All what you said might be true for the web development field, where the technology at hand isn't really that hard and you apply more or less the same technology and knowledge for each web project.
But there're several other fields where experience and knowledge are a lot harder to gain, and therefore also count a lot more, just look at the systems programming world or the more engineering heavy fields.
At my firm are a lot of >50 year old people, which are valued a lot for their knowledge, and our work isn't about getting shit done as fast as possible, but about getting something done right.
>>But there're several other fields where experience and knowledge are a lot harder to gain
Factor in internet that statement isn't true anymore. The amount of knowledge on the net today is mind boggling. Its scary to imagine how much information has become cheap and easy to access these days. And no one knows where this is all heading.
The jobs that require knowledge and experience hard to gain are already very few and shrinking with every coming day.
>>work isn't about getting shit done as fast as possible, but about getting something done right.
Wait until a 20 year old shows how it can be done fast and right.
I temporarily worked in safety-critical software development. There's a lot of tools in that domain that simply aren't as googlable(read: expensive) and cannot be learned online.
Often, in these sort of situations, the field isn't even that visible. I certainly didn't know how extensive it was until I worked in it.
>>Wait until a 20 year old shows how it can be done fast and right.
I will applaud the 20 year old who somehow manages to disrupt the safe software industry, but I doubt it will ever happen.
The internet makes information easily available, but it doesn't always provide context. For example Hadoop is great for big data, but I trust the fourty-something year old more than the twenty-something year old to know when to ignore the current trend product and use stream processing instead.
A few points come to mind. Are the 50 yo people really computer programmers, or are they managers / architects / scientists / etc?
The point is not that there is nothing to learn, but that after 8 - 10 years, additional learning/experience does not give you a competitive advantage compared to younger programmers.
Finally, you can always have exceptions, niches, etc. That does not change the dynamic for the field as a whole.
I know several older programmers 55+ who run rings around younger programms. They don't just write better code they also pick up new systems, languages, and techniques faster.
I suspect part of this simple selection bias where the best stick with programming for longer periods, but there is huge bennifits to really wide ranging backgrounds. Sure, many things become outdated, but the 4th time you see the same idea presented in a new way your just picking up syntax not a new way to think.
I think the main building block is to have mental elasticity and willingness to try new ideas and technology.
Also, you need to be willing to get over the hump. That part when you are looking at something like node or rabbitmq. You've read the intros 2-3 times and it still seems like crazy incomprehensible gobbledygook.
When I get to that place, I stop working on it, go out for a walk and just let my brain work through it in the background.
30 mins later i sit down at the computer and it starts to make sense.
The other HUGE trick is to hire someone on Airpair to chat with you about the new tech for 30-60 mins. Actually I just gave you the best advice. Do the airpair thing for any new tech you want to get into.
I don't really have advice, but I know there is a very large number of people in their 40s looking to change careers so probably there are many common pathways, internet discussion forums about different professions, etc.
Same for people in the 30s. For example, in the lower ranked medical schools in this country (US), there are many former programmers in their 30s, and they discuss things on boards like http://www.oldpremeds.org/phpBB3/
I wonder if it's common or I am just unlucky or unskilled...
I've been out of work for 11 months. I've been on a large number of interviews and it seems like after that many failed interviews, the answer is probably with me.
The most frustrating thing is the lack of consistent information about why I didn't get hired. Some people said I had good theoretical grasp but can't code. Others said I could code really well but didn't have the grasp of fundamentals they wanted. Most stay silent.
I've conducted a lot of interviews. In my 23 yr career I've done on avg 10 a year. Early last year I was in Yahoo's hiring war-room and did more than I care to remember.
All that to say; I'd love to conduct a few mock interviews with you. My contact info is in my profile.
Do it. Contact me. Seriously.
Edit: this offer extends to anyone that wants help. I am a front-end engineer so that means you'll get more mileage out of me for JS, CSS, and HTML; but I am totally willing to help with the subjective side to interviewing as well.
As someone who does 8 interviews a day and loves to help candidates understand what they did wrong and how they can improve; this is really, really nice of you.
Maybe not heaps, but consider you won't hire at entry-level, and unless you beeline straight into management you're unlikely to be conducting anywhere near 10 a month, ever.
I've worked at small places, where we might only hire 5 people a year; and larger places which were large enough to leave it to the leads (engineer-managers overseeing 20 working engineers)
Don't hate yourself, interviewing is a skill that can be improved with practice. I'm not hiring right now but if you're in SF, I'd be more than willing to give you a mock interview and all the honest feedback you want. Email is in my profile.
I think the best way to get over that is to make something on your own that is so great that everyone wants to hire you without even doing an interview!
The funny thing is that you may not even need a job once you do something great on your own :)
If you are short of money, you can always get a simple part time job to survive.
Last time I went out interviewing, I whipped up a fun little Android game, put it on my phone, and made a point of finding a way to slip it into the conversation. It was great because:
1) It let me set the tone and path for much of the interview, since so many places do unstructured interviews.
2) It was a concrete demonstration of my skills.
3) Java and mobile are both hot technologies, and the game also made effective use of other common stuff like Open GL, multithreading, network, database storage (via sqlite), etc.
4) Spending a few minutes playing a game sets a relaxed tone for the entire interview, which makes things easier for everyone involved.
Structured interviews really are a brilliant strategy. Whenever I interview, I do my best to subtly direct the interview in a way that exposes my strengths and leads the conversation into areas that I am most comfortable with (and trust me, whipping out a concrete example full of technologies that you're absolutely comfortable with helps). A structured interview, to an extent, would allow the employer to retain better control of the interview (whether or not the realize it), which is probably to their benefit. For instance, I teach Java, C#/VB, and some other modern languages at a local college after work, do tons of C / embedded / network / etc. stuff at work, and do digital electronics for hobby ... so if you let me push the interview in those technical directions, I'm at an advantage.
The game is called 'aqua balls' and is on google play. I haven't updated it in almost 3 years, though ... right after I finished it I started having trouble with my wrists and finger joints, which meant no more coding for fun (I took a team lead job and cut out a lot of typing at work too). My brother wrote and maintains the other app published by 'woggle' (he also did all of the art for aqua balls), so it is still updated regularly. He's actually a D.O. IRL, so this is 100% hobby for him.
> I think the best way to get over that is to make something on your own that is so great that everyone wants to hire you without even doing an interview!
This is a good idea.
I have no idea what people would want or what I could make that people would want or what open problems are there that I could make. Every idea I have someone else already has a better solution.
I keep trying and put it in github but it's mostly for me; no one looks at it.
The Julia people are complaining that their language is great but it is not being picked up because their standard libraries are missing a ton of functionality.
Start knocking out some standard library functionality.
Sure, you may not be interested in Julia. But there are plenty of other projects out there that are understaffed. IPython Notebook needs developers. Octave needs somebody to write a good front end. It goes on and on.
The advantage is that you don't have to be super creative (compare Julia's libraries to Python, and start implementing something that isn't yet in Julia), nor predict the future (meaning, you can make a brand new X, but if the world goes to Y, you will never get picked up). What you write will be used by (at least) thousands, and you will have to write production quality code to get your pull requests accepted. I'd be impressed with anyone that did that, even if I had no interest/need in the project that they contributed to.
I would like to proffer a different strategy: Pick something that you are passionate about, good at, and comfortable with. Then push your personal boundaries and learn something new while making some app/widget/whatever, even if it's been solved/done before. Why did you do it? You wanted to stay up to date, learn something, and it was fun (and all of this will be true).
Whatever you made will probably be something pretty sweet because you chose something close to your heart, not something that was simply 'unsolved' or 'needed doing'.
Employers will love that you chose to challenge yourself to build new skills as a hobby, and because you chose something that you are passionate about, you'll probably also have a good amount of enthusiasm while you talk about it, which is equally important.
Where is your github? People bothering to respond to your comments on HN might be the only ones you will be able to get to glance at your code ... but I bet they will. I would have if I had been able to find your github.
Pick an open source project that interests you, preferably one you personally use, and become active in their community. The issue/bug tracker of almost any open source project has a list of feature requests and bugs to work on. You get to add open source contributor to your resume, and become a "subject matter expert" by virtue of that.
You've got about billion comments like this in your history.
The previous advice has been good.
If you opened up more about your specific troubles I think more on HN might help diagnose.
Maybe put some stuff on github, who cares how awful it is or if no one will use it .... The following statement is not globally true but I think it is probably true in your case --- you won't be able to succeed until you fail some more.
If there was a "hoboon" github we could like at when responding to your comments, the specific advice might be more specific.
Frustrated and wanting to improve your skills -- fine.
Hate yourself -- hmm, not good.
Everyone struggles and it's very hard. Looking in the mirror and figuring out what you can do better, not being satisfied with what you've achieved, I'm all for that. It's how we grow. But you cannot allow your assessment of yourself on a single dimension to become your entire assessment of your entire worth. I'm certainly not saying we're all special flowers, and our professional is hugely important. But it isn't all we are, and those skills aren't static anyway.
Also: If you want feedback, you can do things to improve your chances of getting it. Be incredibly positive in your responses -- "thanks for the opportunity!" People are obviously reluctant to talk with someone they've rejected, so signalling that you won't make this hard for them can help. If you have guesses at the problem, or suspicions you'd like to rule out, suggest them. Statements like "I think I need to build up Z" or "I worry that I come across as Y" might give you useful yes / no answers, if they are set up properly.
Think also about informational interviews as a means for seeking out fit. If you're just having coffee with someone, about what they look for and how people succeed, they are much more likely to be brutally honest than they are after rejecting you. If I'm having coffee, I can politely tell you why your resume or body of work look off, because I think that's helping you.
Highly recommend people apply for this company. I interviewed here and while I didn't quite make it, they're a good group with an interesting embedded/hw product and backend.
I think it's great that you didn't have any formal education, and you have gone farther than me, someone with formal education and 'seven years' of experience.
> guess what I am trying to say is: - dont give up - expect success over time (1-2 years as a bare minimum) -
I've been unemployed for a year. I think my career is over. Other, better people can do more.