Somewhat related, perhaps the most spectacular story of a late coder I've ever heard is that of https://en.m.wikipedia.org/wiki/George_Pruteanu (somewhat controversial Romanian literary critic and politician).
Basically, despite having a major in Romanian literature and spending a lifetime as a literary critic, with almost 0 contact with computers, he decided in his late 40s and early 50s to understand the things behind the internet.
So he picked up on his own: PC usage, internet browsing, PHP and MySQL coding, enough to make his own website and a few apps. That, starting from a point where he could barely use a mouse.
When asked during a TV show how he did it, he replied:
Like I did things for my literary criticism: I read an 1 meter [high stack] of books about the subject.
Every time I need motivation I think about that quote :)
You could use some standard figures for page and book size (in Kb) and measure Pruteanus in megabytes of text. And you joke, but there's nothing in particular that is required of a unit of measure other than a lot of people thinking it's a good idea.
on the topic of book learning, is there some generally considered principal choice when it comes to learning Haskell? There seem to be some competing ones with widely varying opinion.
Not to be rude, but that sounds like a horrible introduction to a language for a beginner.
If you're intermediate and want to gain more insights sure. But if you don't even know the syntax it seems like an extremely inefficient way of learning any language.
The first papers in the list explain the "why" of functional programming, and later on more concrete Haskell topics are covered. Papers shouldn't be the only resource but you can supplement them with tutorials and skimming Real World Haskell. This approach of reading papers is intended to be holistic, of course you won't be churning out Haskell code within a couple days, but when learning Haskell or FP, syntax shouldn't be one of the primary focuses imo. Unless you're learning lisp.
Depends on your background of course, but Learn You a Haskell for Great Good has been pretty influential as a first look at Haskell. Read it with a REPL open.
What i always tell people if you find yourself naturally drawn to it then you will eventually find some level of success. If your in for just the money then you will not stick with it and it probably won't happen.
Same is true for just about most things in life.
This guy found he was naturally drawn to it. End of story.
people say this a lot but it's pretty hollow. if you're smart enough you can do it even if you don't like it. anecdotally I'm a fairly good dev (full stack, know several languages, several projects under my belt) and I hate it. the day I move from technical to management will be the greatest day of my life.
Careful what you wish for. Management is often the same shit, different sandwich. I agree, however that you can be good at something you don’t necessarily have a burning passion for. That’s why they call it “compensation”–it’s there to compensate you for the time you’d rather be doing something else.
I honestly have never worked with anyone in software like that. I think you are a lot more rare than you know at least when it comes to software dev. But I do know other industries are filled with smart people that hate it and somehow stuck with it only for the money. For example attorneys...
I don't think you'd know if you'd worked with someone who is just in it for the money. If they're coding just for the money then it stands to reason that they'd also be willing to pretend to like coding just for the money as well.
My experience: been in both roles. Mgmt is not bad, but after a few years in it, I consider my current career as freelance contractor dev to be way less stressful.
I'm just in it for the money. I've achieved success, I'm really good at my job and I'm still going strong almost 20 years later. Wouldn't do it if it didn't pay the bills.
I'm going to disagree from the opposite end of the spectrum as the two replies already disagreeing.
I wanted to program computers from when I was a kid and my dad showed me how to draw coloured circles on the screen. And now, I have a job in tech, part support, part coding.
But the thing is, I'm not very good at the coding part. I'm also quite lazy and hate practising things I'm not very good at, so I don't put in the work to get better.
Meanwhile I've seen coworkers come and go and maybe been a bit scornful of them because they seem to be only in it for the money, or they don't know things "everyone should know", maybe they don't even seem to want to ("pfft, what kind of boring loser would even care about that stuff"). But, they've been much better coders than me: they've picked stuff up faster, they've put in more work, they've gone on to new, better-paid, more interesting jobs. And well done them.
(It's a good, encouraging story for beginners who are drawn to it though, I agree with that part.)
This is generally a decent article about the balancing non-technical skills, and exerting effort in learning.
I found it noteworthy that the "hook" in the title is that the person started in (gasp) their 30s. Why should that be noteworthy? Why wouldn't someone start coding in their 30s, 40s or 50s?
Now it is true that starting a new profession late in life may not always make sense because, presumably, you have to little time left you might as well "ride it out" contributing what you know.
So, yes, it is unusual for a doctor to start learning mathematics in their 40s (though not unheard of: https://en.wikipedia.org/wiki/Endre_Szemer%C3%A9di), but it isn't less strange to make such a change in computer science than any other field.
I agree about the age reference, it's irrelevant. If grandma wants to learn javascript then so be it, challenge the brain and code away. I don't find his story that uplifting or even worthy of a challenge that any other 30 year couldn't do.
Not really. The problem in general is that there are very few active "junior" level positions about, and a lot of people wanting to break in - see /r/cscareerquestions. For later learners especially self taught learners the problem really comes from finding the FIRST job, not the second when they have professional experience.
Coming out of college though is a different experience. If you're 33 and just finished a BS in CS you could probably make a run at most jobs. But self taught at 33 requires a lot more to get in the door than self taught at 25.
There may not be a lot of jobs out there for junior people but there are very few out there for people with 20+ years of experience, either. Everyone seems to be looking for that “4-6 year” sweet spot where they think they are getting the best of both worlds: someone senior enough to have made and learned from a few mistakes but not too senior that they have to offer more than peanuts and worthless equity as pay.
I think it depends on the technology stack actually, I've noticed it's been trending up in mine (.net) with many now wanting 8-9 years experience. It seems like the sweet spot is generally age of technology divided by 2.
> Isn't the same ageism -- true or perceived -- in all industries?
Hmmmm... in a handful of industries I might say yes, but in many others I would say no.
I see an abundance of discrimination against younger in many industries. Either they are looked at as lacking knowledge, experience, or both. Often times this perception is justified, but often it is not. Of course, there is no legal recourse since age discrimination in the US is mostly (always?) for people 40 and older.
That said, the ageism in technology in the Bay Area and a few other areas is peculiar and does not seem to be particularly widespread outside of these regions (at least in the US). This ageism seems to follow a few patterns:
1. People in the capital class working young people hard for low pay... because they can. Most older folks won't put up with it for justifiable reasons. These are often terrible places to work and are often terrible businesses as well.
2. Really smart and creative young people who want to work with similarly-minded people without having to manage a potential or real generation gap. This is probably closer to being justifiable when at a very small scale, but it's still potentially illegal, especially as scale increases. This is the sort of headline discrimination that is seen in the Bay Area -- a 20-something superstar typically doesn't have the "soft skills" necessary to manage someone a decade or two older. Few people at that age do, but this is especially true for folks who spent their younger years developing their non-managerial specialist knowledge.
3. "Culture fit". Some (many?) younger folks in the Bay Area seem to want to extend their college partying years. This means that older and potentially more conservative or parent-like figures are not particularly welcome. I think that this is not uncommon at any favored destination of recent high-achieving college graduates (as well as wannabe high achievers).
If someone in their 30s or 40s wants a job in tech, one easy way is just to get away from the areas that are flooded with high-achieving recent college grads. The areas that are flooded with these types have very real ageism problems. The areas that have few of these folks (most areas) largely don't have ageism problems -- if anything, younger applicants are more likely to be perceived negatively. Admittedly, the latter places are often less cool (i.e., not Bay Area, not NYC, not Austin, etc.), but these places have jobs.
I honestly don't know what the job market is in Atlanta.
That said, the US government and contractors thereof desperately need programmers and programmers who can do other stuff (e.g., manage a contract, project management, etc.). I would try to meet some people who do this type of work and have a coffee with them. Many of these folks live in the D.C. area.
It's not sexy at all, and you won't get rich via a startup, but there are very solid middle class jobs in that category.
I found the article very interesting, and I thought the hook was valid - coding is one of these disciplines where the general consensus is that you need to start very young to be good, similar to Olympic athletes. I wrote my first trivial but working program aged 5 so I believe this to be true to some extent; reading an experience that contradicts this was valuable to me.
I also liked the article for a different reason; I don't aspire to be an Olympic athlete but I do want to become good at certain skillsets that I've only started exploring after my 30s, so I'm definitely hoping the author's experience generalises, and rooting for him :)
Yeah, I think the relevant part is "getting into software/tech in 30s", not learning to code per se which should be non-newsworthy at least through one's 50s.
Then again, I changed careers into software in my 30s (had just turned 30 when I left aerospace), though I had coded in some capacity my entire life. Newsworthy?
I started learning to code in my 30s and I found articles like this very helpful. You're right - why should age matter? But it does, at least in one's own mind. When you've spent your 20s working in a different field, it's very easy to get stuck. It just gets harder and harder to mentally motivate yourself to study something new and pursue a different career. Hearing from other people who have gone through the same struggle tells you that, hey, this is possible! Especially in an industry full of people who have been coding since they were children.
You need more stories like this to show people who wouldn't normally consider CS as a viable, lucrative path to a second career. Areas with high unemployment and people in dwindling old industries may get a second wind in life if they tried his approach. A big change like this also requires multiple exposures to the currently much easier to reach CS education as a possible solution, so I hope more people produce accessible content like this.
I'm 36 and already feel "old" and unfit to continue pursuing a career as a software developer, which I consider(ed?) my dream job. I began programming at ~20 yo but had to work in another barely related field (still in IT) because where I live it's more profitable as a lone ranger. It's difficult to find peers in my area.
I work as an independent consultant wearing many hats, doing all kind of weird network related jobs for small cable operators and small/medium businesses in a shitty country in south america. This includes devops tasks, planning data networks with structured cabling, fiber optics, setting up and maintaining servers, routers, switches and a bunch of appliances that I didn't even know they existed a few years ago (all that ugly shit in HFC networks). I hate my job and feel very unhappy and depressed. I'm on meds, many visits to psychiatrist lately.
All these years I kept learning all I can. I'm an avid *nix user, can program in a few languages and have read more about programming languages, libraries, frameworks, etc. that any other subject that I can think of. I dropped out of university only a few years from getting a degree but continued spending my free time learning about software development just because I like it. I enjoyed many detours with many technologies, loved learning Java, C++/Qt, Python, Go, Perl, etc. I spent too much time and money in books, online courses, software licenses, etc that I feel failed and guilty.
This mentality makes no sense to me. I don't understand why young people feel old in this area so much. It would make sense if you where pursuing Tennis (the sport), but software?
Software is a lot of solving riddles and recognizing patterns. Seriously, Silicon Valley is poisoning peoples minds.
I'm in a similar situation but I work in 'enterprise' software development. What makes you hate your job? It seems you are very skilled in various areas and others seem to recognize and value your skills- that seems to me something to be proud of instead of feeling guilty! Is it the pressures that come with the job?
Yes, I think my discomfort comes mostly from that. And from realizing that I'm getting older, with too many responsibilities and less time each day in a path with no return. At this point I even doubt switching to a software dev job would be satisfying for me anymore.
When I was a kid, my mom was teaching high school, and thought that she might get laid off due to declining school enrollment in the rust belt. She took a year of programming courses at a community college. The next year, they asked her to teach the course, which she did.
Most of her students were 30+, many were working in the auto industry, including assembly line workers. At the time, there were a lot of bright people working the lines because it had always been possible to skip college and land a decent middle class job at the car plants. But that was coming to an end.
Her students were taking one year of CS and getting hired into reasonably decent programming jobs.
In fact, I was also interested in programming, and learned it in school. When I went to college, my mom discouraged me from majoring in CS because she literally thought programming was too easy to justify 4 years of classroom training, and she thought that the job market for programmers would quickly saturate.
Let's just say we guessed wrong. ;-)
But at the time, college level CS was still maturing as a discipline. Many of the 4 year colleges didn't have full blown CS major programs. I'm betting it's harder now, but I honestly don't know if programming per se has fundamentally gotten any harder.
Edit: Noting some of the comments, I certainly don't want to disparage the CS degree. After all, I majored in math and physics -- hardly a turn towards a practical training. I think these are fields where you have to be interested enough in the subject matter, to study it as an end unto itself. Being able to do actual practical work in a so called real world setting is always its own beast, no matter what you study.
> my mom discouraged me from majoring in CS because she literally thought programming was too easy to justify 4 years of classroom training, and she thought that the job market for programmers would quickly saturate.
This part is real wisdom. The best developers I know (and I myself, which I consider an above average programmer) learned how to program by themselves (before, during or after high school time). And it is not uncommon to find people with CS degree unemployed or with difficult to reallocate with the current state of tech, at least here in Brazil.
I think you mean specific problems. Hard math problems are extreme outliers in fhe realm of computer science and there are plenty of suitably qualified people in the maths side. That said, less hard problems, more suitable programmers with undergraduate maths, are quite common and a growing area. This may preclude those that are self taught and lacking more advanced, but not highly advanced math.
Building CRUD apps using existing frameworks is coding.
Building said frameworks and the rest of the software that powers those CRUD apps takes more.
I don't mean to rag on simple projects or coding either. It's just as noble as any other profession. But to say that a random Rails or Node developer could write something like Postgres is laughable.
It's not the degree that makes that possible either. There's plenty of idiots who've graduated. It's the difference between studying how to do something and studying abstract concepts. People who have done CS degrees are more likely to have been exposed to the latter.
I don't mean to belittle you either, but this is hogwash. Of course a Rails or Node developer wouldn't be able to write Postgres without ramp-up time...
Maybe what you're saying is that the ramp-up time would be LONGER for someone starting from Rails or Node only knowledge to being an infrastructure developer?
Any highly sophisticated application ( Postgres, LLVM, etc ) requires some advanced levels of domain knowledge but they aren't impenetrable fortresses of skill that no mere mortals can access.
I think, somewhere along the way, a lot of developers started believing this fantasy that they were the keepers of secret knowledge that only a few select individuals knew... GOOG and MSFT perpetuated that with esoteric interviewing processes and cult-of-personality style branding. The truth is... the fundamentals of CS aren't terribly difficult nor are they even terribly exciting. You can absolutely learn them on your own or even as you go.
> Any highly sophisticated application ( Postgres, LLVM, etc ) requires some advanced levels of domain knowledge but they aren't impenetrable fortresses of skill that no mere mortals can access.
Indeed. I think too many problems in our industry are seen as unapproachable. There's a lot of people working on postgres, me included, who did not have any sort of deep background in databases before. You start working on smaller things (I started making int -> text conversion faster), review other people's patches, start to develop new features, ... Gradually that gives you a more and more knowledge in database architecture. And you read a few good papers here and there.
Obviously that approach doesn't really lend itself to writing something like postgres from scratch - but realistically that's not something you're going to do on your own anyway. And if you do start a new project you don't set out to do something absolutely complete, but build it iteratively. With more domain knowledge, you're more likely to get the architecture halfway right initially, but in either case you're going to have to redesign and redesign and redesign.
And who do you think will build a better web framework (like Rails), someone with 10 years of experience and hundreds of systems deployed with frameworks of the time at age of 22 or a fresh graduate? I'd bet on the former.
Some of the best developers I have worked with had CS degrees and some of them didn't. The ones that didn't were programming from when they were kids (like you say). Based on my experience of working with developers from both backgrounds, I personally wouldn't discriminate based on whether someone had a degree or not when interviewing.
The "Sorites paradox" is something like: how many grains of sand form a heap? if you remove or add one, is it still a heap?
So, exactly what exactly makes you a programmer? that varies a lot depending on who you ask. Someone said a programmer should be able to detect and report a bug to a hardware manufacturer. Some others say that "learning" (partially, because most programmers don't know every single aspect of a programming language) a general purpose or Turing-complete language makes you a programmer.
I define an "X programmer" where X is backend, frontend, data, whatever... as someone who can not only implement a feature, but do it through understanding rather than through a heuristic of trial and error or reusing code. Also, a person that is able to troubleshoot what is going on if some of the underlying systems is not working as expected.
I would argue that the most relevant definition would have to address a programmer's role in society rather than their level of actual skill. In this sense anyone having learned enough material to have an actionable skill that regularly comes into play in their lives can credibly be said to have learned to code.
I once said that "I realize nothing I do in engineering will ever end up on the front page of Hacker News." Feels like a once-in-a-lifetime moment. Thank you
I couldn't agree more. I had a few paragraphs on impostor syndrome that I edited down to "doubt" but I hope it was implied, you must ignore impostor syndrome. There are always going to be people doing Mount Olympus code and that is great! These are the people we can learn from. I get to build things people use and I love it.
Thanks for sharing your story! I took a similar path: 20s in a career I didn't like, coding bootcamp, working like crazy to get that first software engineering job. Now I couldn't be happier!
My father is 59 and started to learn programming half a year ago. So far I was giving him algorithmic tasks to learn basic language constructs, he is now comfortable with basic Java and is able to solve most of easy problems from programming contests.
And idea where to go from here? I don't think solving more difficult problems (like that involving algorithms or creative thinking) would make sense at this point.
I tried to give him simple GUI project (tick-tac-toe in Swing), this kind of worked with lots of my help, but of course it was badly designed with model-view mixed, and he is unable to understand design pattern concepts at this point.
I guarantee you that if your father is 59, that at some point in his life he's found a way to be more efficient at whatever his workload was at the time than a raw beginner. Design patterns are exactly that: patterns of efficiency.
The terribad thing about them is that they don't often explain why they are more efficient than the the naive path.
I'd recommend that you pose a series of tasks to your dad, and work with him to build them out, rebuilding them several times if necessary, to start that deep understanding of the art. Adopt a posture that this work is critical, and that you are working together. You'll both learn why as you do it.
Give him a real problem to work on. It doesn't have to be big, but it has to be directly relevant to his life. Solving toy problems for fun is a good start, but to get further engagement, you need a reason to be doing x, y, or z.
About 30 hours a week for two months I finished the Front End Certificate from freeCodeCamp (highly recommend the site for starters). Then I decided it was better to build my own projects with the tech I wanted to learn (mostly React) using official documentation and tutorials. This is what I accomplished in around 3 months: www.rodrigo-pontes.glitch.me
Then I started to apply to jobs. After around 4 rejections, last week I started as Front End Junior Developer (using Ember actually) at a funded fintech startup with a great learning environment for the tech team.
Very proud of my accomplishment so far, but I know the rough part is only starting.
I started smoking at 15. When I was in my early 40s, i was diagnosed with chronic obstructive pulmonary disease (COPD),It was becoming increasingly worse. My dad and his dad died from this. It's a hard disease that seems to start out like bad asthma and progresses into chronic lung infections.
One day i saw a blog online,were so many people are writing about how perfect health herbal medicine cured them of COPD,so i contact perfect health herbal medicine home immediately via email,which they replied immediately too ,and told me to purchased the herbal medicine for COPD,They gave me guarantee that i will be cured with 6 weeks of usage,i believed them and purchased,after purchasing ,the herbal medicine was shipped to my home address,i received within 3 days. i used the herbal medicine for 6 weeks ,and i was totally cured of COPD ,All thanks to perfect health medicine home.please get your COPD cure immediately you see these testimony .
CONTACT DETAILS;
(Email;perfecthealthherbalmedicine @ gmail com)
(website:www ' perfecthealthherbal ' weebly ' com)
Thanks! (there is nothing fancy in my portfolio, btw, just wanted to share it so people in similar situation can have an idea of how an average output after 6 months of coding could look like)
I graduated in Economics. The first ~7 years of my career was at non-profit organizations (as project manager and fundraiser). Then I went to the startup world, one year as a startup founder, two years working with growth marketing at another startup.
But I always had a good mind for logic and analytical stuff, I think it helps a lot.
It looks like you've learned a lot, but a lot of people are going to criticize you based off your design skills. Frankly, it's ugly so you're automatically not going to be doing any product work. If you could clean up your demos to look more acceptable to the modern day reviewer, I think you would have better presented yourself.
Exactly. There's this poisonous atmosphere in HN that dislikes criticizing honestly. In fact, throw in some compliments and you'll get a zillion upvotes. But complain about something, and fear getting banned...
Because it's unnecessarily tactless and bordering on hurtful. Learning how to give honest feedback without being so cutting is a skill the commentor should learn.
How do you define degree of tactlessness? It was so nice of him to call that website 'ugly'. It is totally unacceptable to downvote someone for telling the truth(no matter how ugly it is).
I considered using a common framework, but I wanted to create some design from scratch. I know it is not good for some people, but I think it added to my skills doing that way. Someday I will try to improve it, but still using my own ideias, to see if it gets better. But with the job now and all I have to learn, it is not a priority.
If I were to create a product, I wouldn't try to be creative. I would just use some modern CSS framework.
I agree it is better to have a good grasp of css before using a CSS framework. If you haven't already, checkout this fantastic new CSS/layout tutorial/book:
Sean Smith's story is so inspiring. It teaches us that if you can afford to work unpaid for 7+ hours per day, 50+ hours per week for a whole year and move to one of the most expensive cities in the world without a job, then you can truly achieve anything.
This is currently the wall I find myself staring at. I feel like I'm barely over the theshold, and I can't afford to keep doing it this way, I'll have to get permanent work soon.
I definitely can't afford to move to San Francisco.
You could learn to do coding by working remotely, but I think a key thing is finding someone to help point the way toward what you need to learn. In a cheap town without much going on, you might have more time to focus. But how do you connect with someone to guide you.
Thanks and congrats for your work Quincy. freeCodeCamp is something very very special. I consider it of similar importance of Khan Academy and Stack Overflow.
Unfortunately it does not receive proportional attention from more technical forums like HN. Mostly because it is basically designed for non-developers. That's why I particularly like the marketing strategy of students giving stars to freeCodeCamp Github repository. It brings awareness to developers of all kinds and ways of life about what you are doing.
I believe freeCodeCamp will grow to be an essential tool for improving society and individual people's life by democratizing knowledge.
I hope to learn enough to be able to give back to the platform. It's pretty overwhelming to be in the situation I am right now, but once I am more stabilished I will sure contribute somehow.
I've been clicking on your 'hacker news best comments' button for like twenty minutes now... you weren't kidding when you said 'basically a time waster' :P
Seriously, really good looking stuff for your early projects! I'm not surprised someone picked you up :)
I'm curious how hnbc even works. AFAICT there's no way to see how many upvotes someone else's comment has gotten. Is the upvote number shown through the hn API?
All depend of your location of course. I live in São Paulo, Brazil. I earn 4500 Reais per month (~ 1300 usd per month). This is actually around 30% higher than what I was expecting as an average salary for a junior web developer. Luckily I landed the job with the highest pay.
My expectation is to double that within two years. I believe my former work experience can accelerate my path to be a senior developer. And then keep going on a more linear growth.
Yes and no. Getting the first job is a huge hurdle, you actually have overcome probably the most difficult challenge of the early years of your dev career, so well done.
Of course, the challenges keep coming, and quickly, but from here on it will look much more like a (possibly rather steep ;-) upward curve wrt time rather than a huge cliff (hobby projects/qualifications -> first job).
So long as you're expecting and prepared for that, which you clearly are, you're now in much more of a position to control your own success, which in relative terms is actually a lot easier, less stressful, and even fun!
> Immersion means 100% focus. If possible, no friends, no drinking, no TV, just reading and writing code. If you take five minutes off to read the news, be aware you are breaking the mental state of immersion. Stay focused, be patient, your mind will adapt. Eliminate all distractions, of which you may find doubt to be the loudest. Immersion is the difference between success and failure.
Certainly, I think Deep Work require full concentration. So when in the mode of learning, I find keeping focus instead of going to a website to read news, or checking e-mail/messages to be incredibly important in maximizing the incremental process of grasping concepts.
That being said, whereas the author seems to prefer taking a few months to go deep into it, I prefer to immerse myself over a long period of time by learning and practicing a few hours per day (just like an instrument), letting my mind stew in the knowledge during diffuse thinking periods, and then come back to it the next day.
I agree that for rapid learning, focus and repetition are essential. I don't think you have to quit your job in order to change careers into coding, but for me it took a very full year of effort.
Hi, Brad. I'm now embarking on a non-programming learning crusade. I agree with your comments on immersion, but I find it quite difficult to become immersed. I am often distracted or don't have the "energy" to do the serious work I need to to learn.
Is a full stack person still realistic with today's web technologies?
I mean to build up expert level skillset, you'd have to really dedicate your self into learning the particularities of not just languages but also their runtime environments.
Unless you have no life, and only sleep, eat, code, or super intelligent, being able to absorb and stay current with everything.....
Other than that, I just don't see the full stack mentality working
The value of being a full stack dev is not to be an expert in everything, as you're right that isn't really feasible. The value comes from being able to do a good job at each piece, so that you can take an entire project from concept to completion. Most full stack folks naturally develop areas of strength and focus within that, either frontend or backend, but still benefit from the fullstack context and mindset. That has been my experience anyways.
as an org, what is the value of hiring full stack vs specialized individuals for each part of the stack? I guess one reason is if money is of concern. I can't think of any other reason for doing so.
Money is always of concern. But additionally a full stack can take lead on an entire project. There's also an increased organizational/communication overhead for every additional person you put on a project. It simplifies things a lot if there's a small number of people working on it, even if more devs are available.
I'm 36 and learning how to be a real programmer. Was a Linux Admin, and an architect for my career. Did presales, and became an expert at a lot of different roles within the field.
Never was truly a developer, and decided I wanted to accept a job as one. I've programmed in the past, how hard can it be?
Wow, it's been enlightening. Really hard. I thought it would be straight forward since I've used scripted quite a bit in perl in my past, but being a developer is much more than writing a few scripts to automate a task.
I'm a few months in now, and I am still slower than all my colleagues by quite a bit, and the main language I'm working in has changed already, moved from Python to Go.
Even right now, I'm stuck on an issue around pointers and data structures that feels like it should be easy, and I'm just not getting it.
All you can do is keep confidence up, and keep at it. Immersing in it, and knowing that irrational levels of effort will lead to results.
Soon you will love pointers and structs and everything Go. Keep going (pun intended). Your colleagues are worried about their own work and your manager has made a long-term investment in you, not about the first few months. :)
I couldn't agree more that it is tough going when you realize a challenge is more than you expected. That plus impostor syndrome is what caused me to quit on my first try.
We are moving a lot of things from Python to Go at the moment and it has been great.
Appreciate the positive feedback. I certainly feel the management are making a long term investment, but feel my actual team is... concerned about the lack of deliverables.
Which I think is fair from their perspective, I think they expected a developer by trade to have assumed the role, and in actuality it's someone who has done a tremendous number of jobs around development. I'd be a bit concerned as well.
The great thing is, I'm learning a ton of cool technologies, and already see the major progress on a lot of fronts.
Actually knowing where you are at puts you way ahead of the curve. Many developers don't even know they are not that good. If you love it and seem to have excelled already in a similar area you just need time. Even just knowing that good development is not just writing a quick perl script or copying and pasting the tutorial code or stack overflow answer is a good sign and would probably set you apart from most I know.
As student trying to make sense of job space and prospects, there's just too many statements that gets posted on the internet that seems to contradict each other.
When computers were invented, a lot of the people involved were already adults - plenty in their 40s and above. Before home computers, you didn't get to use a computer until your 20s.
Therefore, the first few waves of programmers included a lot of "already olds."
This is always overlooked as evidence that older people can learn to program.
Of course, but they had a strong theoretical background that made it a natural transition. And besides that, nobody would argue that you don't need a fancy medical degree to do medicine because the barber surgeons didn't have one (different circumstances, but I think OK for illustrating the problem with the argument).
The concern I usually hear is not around the learning to program aspect. Instead, it's that fact that almost every other entry-level programmer is a college grad, and that hiring processes will be biased against older candidates.
At 31 I took my savings for my house, quit my robotic customer service job and started a startup. I worked on my 1st startup for three years and along the way taught myself front end development and design. Which I now do for a living.
I say startup and if it fails like 80 to 90% due you gained an in-demand skill that you can use to make a nice living.
Would you have any advice especially on how to master design skills and how to deal with pressures around personal finance when starting out on your own? I'm about to quit my job in 'enterprise' software development because I am bored to death.
Save up a lot of money, ask family & friends to invest and apply to incubators that provide seed capital. Also move back in with family if that's an option.
This is what I did and it allowed a three year runway to try and make it happen.
It didn't happen in terms of a financial success but it was a lot of fun! Way more then working for the man in any field!
Reading that makes me glad to be a network engineer. Ethernet, BGP, and OSPF don't change all that much. I am all for learning the latest Python, NetMiko, NAPALM stuff for network automation. This article reads like masochism.
I learnt C, C++, Shell scripting gnu makefile creation directly on project. When I did my degree I only knew C just for sake of passing. I was directly exposed to writing device driver for I2C and SPI the very first day and someone just dumped a 1GB of technical junk on my PC which include some APIs of RTOS I was supposed to work on!
But I would say that that was really a steeeep learning curve... I am amazed and surprised today when I look back from where I started 13 years back :)
I started learning to code when I was 31. Though I did have an engineering degree, but I learnt basically nothing after getting into engg school. Spent most of the 4.5 years worrying whether I was smart enough for this to do this and setting myself up for very dismal results.
Became an advertising copywriter after college and spent 7 years in the copy mines. It was truly a profoundly uninspiring industry (though I continued to doubt myself and never really got to where I wanted to and should have)
Founded a startup with a friend hoping for a fresh start. Took forever to find a developer so in some strange moment of overconfidence (sanity?) I decided I would take a shot at it and started learning Python. Found myself hypnotized by the codeacademy course and knocked it off in 3 days or less.
Some a few started programs then a developer friend came on board as an advisor and told me to pick up Django. In a few months (with him and another good friend doing all the heavy lifting) I got enough into the thing to be able to scrape data, make API calls and develop the admin interface.
With everything I learnt I found a block of that constant self doubt melting away. I had never felt so capable and in control in my entire life.
Startup wound up though and I had to take a job at a design agency. Though I picked up the basics of HTML and CSS there most of my work was managing clients (aarghh) Left in a few months as a writer at this startup working part time.
But within a month of me joining the CTO quit and the company was in massive flux. I just stepped forward and said I would code. The other developers happily took the help and I got my first job as programmer. The next 1.2 years were just full days of writing scripts to automate our workflow and figuring out this danged JS, Node thingy (which I really love now btw)
When this place wound up too and I studied React, now have a big 6 month project at this company helping them automate their workflow with an admin app. Am writing the fullstack code, all by myself. Which is so exciting and empowering.
Programming is awesome. It's my one advice to anyone who asks me for advice these days. It changed my life completely. From being a constantly depressed and volatile guy I am now fairly confident and really rare to anger.
Surprise bonus, I have become far more creatively productive after leaving the creative industry and have written a bunch of songs (that I don't hate) and also started learning to play the Piano, something I always wanted to do.
Next up is Algos and Data Structures the next time I have enough saved for a 3 month immersion. I really do think they are super important. Plus picking up a new language. Suggestions welcome.
207 comments
[ 0.22 ms ] story [ 248 ms ] threadBasically, despite having a major in Romanian literature and spending a lifetime as a literary critic, with almost 0 contact with computers, he decided in his late 40s and early 50s to understand the things behind the internet.
So he picked up on his own: PC usage, internet browsing, PHP and MySQL coding, enough to make his own website and a few apps. That, starting from a point where he could barely use a mouse.
When asked during a TV show how he did it, he replied:
Like I did things for my literary criticism: I read an 1 meter [high stack] of books about the subject.
Every time I need motivation I think about that quote :)
Sounds like a good hook for website. Instead of learn X in 21 days: http://www.1meterofbooks/programming
As in:
"How many Pruteanus until I'll be proficient in ML if I have zero understanding of the subject"
1 Pruteanus (1 Prt) is measured as the amount of learning from a 1m high stack of any books given.
obv /s
This book may look small, but has about .125 Prt in its pages!
• CIS 194 @ UPenn, https://www.seas.upenn.edu/~cis194/fall16/
• Haskell Programming from first principles, http://haskellbook.com/
• Real World Haskell, http://book.realworldhaskell.org/
https://hackwithlambda.github.io/reading-group/
If you're intermediate and want to gain more insights sure. But if you don't even know the syntax it seems like an extremely inefficient way of learning any language.
http://learnyouahaskell.com/
Same is true for just about most things in life.
This guy found he was naturally drawn to it. End of story.
Btw, it irks me that you don't capitalize the first letter of your sentences but still properly capitalize "I".
blame my phone.
I'm just in it for the money. I've achieved success, I'm really good at my job and I'm still going strong almost 20 years later. Wouldn't do it if it didn't pay the bills.
I wanted to program computers from when I was a kid and my dad showed me how to draw coloured circles on the screen. And now, I have a job in tech, part support, part coding.
But the thing is, I'm not very good at the coding part. I'm also quite lazy and hate practising things I'm not very good at, so I don't put in the work to get better.
Meanwhile I've seen coworkers come and go and maybe been a bit scornful of them because they seem to be only in it for the money, or they don't know things "everyone should know", maybe they don't even seem to want to ("pfft, what kind of boring loser would even care about that stuff"). But, they've been much better coders than me: they've picked stuff up faster, they've put in more work, they've gone on to new, better-paid, more interesting jobs. And well done them.
(It's a good, encouraging story for beginners who are drawn to it though, I agree with that part.)
I found it noteworthy that the "hook" in the title is that the person started in (gasp) their 30s. Why should that be noteworthy? Why wouldn't someone start coding in their 30s, 40s or 50s?
Now it is true that starting a new profession late in life may not always make sense because, presumably, you have to little time left you might as well "ride it out" contributing what you know.
So, yes, it is unusual for a doctor to start learning mathematics in their 40s (though not unheard of: https://en.wikipedia.org/wiki/Endre_Szemer%C3%A9di), but it isn't less strange to make such a change in computer science than any other field.
Because there's perceived ageism in this industry, so saying you're just getting started in your 30's is interesting.
Would you be feel comfortable starting med-school in your 30s? A PhD? Training to be a plumber or an architect?
If anything, because programming takes a shorter time to become productive (say 2 years), I would think it would attract older job switchers.
(edit: Before people give me counter-examples, note:I know these things do happen)
Coming out of college though is a different experience. If you're 33 and just finished a BS in CS you could probably make a run at most jobs. But self taught at 33 requires a lot more to get in the door than self taught at 25.
Hmmmm... in a handful of industries I might say yes, but in many others I would say no.
I see an abundance of discrimination against younger in many industries. Either they are looked at as lacking knowledge, experience, or both. Often times this perception is justified, but often it is not. Of course, there is no legal recourse since age discrimination in the US is mostly (always?) for people 40 and older.
That said, the ageism in technology in the Bay Area and a few other areas is peculiar and does not seem to be particularly widespread outside of these regions (at least in the US). This ageism seems to follow a few patterns:
1. People in the capital class working young people hard for low pay... because they can. Most older folks won't put up with it for justifiable reasons. These are often terrible places to work and are often terrible businesses as well.
2. Really smart and creative young people who want to work with similarly-minded people without having to manage a potential or real generation gap. This is probably closer to being justifiable when at a very small scale, but it's still potentially illegal, especially as scale increases. This is the sort of headline discrimination that is seen in the Bay Area -- a 20-something superstar typically doesn't have the "soft skills" necessary to manage someone a decade or two older. Few people at that age do, but this is especially true for folks who spent their younger years developing their non-managerial specialist knowledge.
3. "Culture fit". Some (many?) younger folks in the Bay Area seem to want to extend their college partying years. This means that older and potentially more conservative or parent-like figures are not particularly welcome. I think that this is not uncommon at any favored destination of recent high-achieving college graduates (as well as wannabe high achievers).
If someone in their 30s or 40s wants a job in tech, one easy way is just to get away from the areas that are flooded with high-achieving recent college grads. The areas that are flooded with these types have very real ageism problems. The areas that have few of these folks (most areas) largely don't have ageism problems -- if anything, younger applicants are more likely to be perceived negatively. Admittedly, the latter places are often less cool (i.e., not Bay Area, not NYC, not Austin, etc.), but these places have jobs.
That said, the US government and contractors thereof desperately need programmers and programmers who can do other stuff (e.g., manage a contract, project management, etc.). I would try to meet some people who do this type of work and have a coffee with them. Many of these folks live in the D.C. area.
It's not sexy at all, and you won't get rich via a startup, but there are very solid middle class jobs in that category.
I also liked the article for a different reason; I don't aspire to be an Olympic athlete but I do want to become good at certain skillsets that I've only started exploring after my 30s, so I'm definitely hoping the author's experience generalises, and rooting for him :)
Then again, I changed careers into software in my 30s (had just turned 30 when I left aerospace), though I had coded in some capacity my entire life. Newsworthy?
I work as an independent consultant wearing many hats, doing all kind of weird network related jobs for small cable operators and small/medium businesses in a shitty country in south america. This includes devops tasks, planning data networks with structured cabling, fiber optics, setting up and maintaining servers, routers, switches and a bunch of appliances that I didn't even know they existed a few years ago (all that ugly shit in HFC networks). I hate my job and feel very unhappy and depressed. I'm on meds, many visits to psychiatrist lately.
All these years I kept learning all I can. I'm an avid *nix user, can program in a few languages and have read more about programming languages, libraries, frameworks, etc. that any other subject that I can think of. I dropped out of university only a few years from getting a degree but continued spending my free time learning about software development just because I like it. I enjoyed many detours with many technologies, loved learning Java, C++/Qt, Python, Go, Perl, etc. I spent too much time and money in books, online courses, software licenses, etc that I feel failed and guilty.
http://spectrum.ieee.org/energywise/energy/fossil-fuels/the-...
https://www.wired.com/2015/11/can-you-teach-a-coal-miner-to-...
http://www.minedminds.org
Most of her students were 30+, many were working in the auto industry, including assembly line workers. At the time, there were a lot of bright people working the lines because it had always been possible to skip college and land a decent middle class job at the car plants. But that was coming to an end.
Her students were taking one year of CS and getting hired into reasonably decent programming jobs.
In fact, I was also interested in programming, and learned it in school. When I went to college, my mom discouraged me from majoring in CS because she literally thought programming was too easy to justify 4 years of classroom training, and she thought that the job market for programmers would quickly saturate.
Let's just say we guessed wrong. ;-)
But at the time, college level CS was still maturing as a discipline. Many of the 4 year colleges didn't have full blown CS major programs. I'm betting it's harder now, but I honestly don't know if programming per se has fundamentally gotten any harder.
Edit: Noting some of the comments, I certainly don't want to disparage the CS degree. After all, I majored in math and physics -- hardly a turn towards a practical training. I think these are fields where you have to be interested enough in the subject matter, to study it as an end unto itself. Being able to do actual practical work in a so called real world setting is always its own beast, no matter what you study.
Not that wrong, imho.
> my mom discouraged me from majoring in CS because she literally thought programming was too easy to justify 4 years of classroom training, and she thought that the job market for programmers would quickly saturate.
This part is real wisdom. The best developers I know (and I myself, which I consider an above average programmer) learned how to program by themselves (before, during or after high school time). And it is not uncommon to find people with CS degree unemployed or with difficult to reallocate with the current state of tech, at least here in Brazil.
You don't need a CS degree to make a website.
You can do a lot with general coding knowledge, however, I've found the CS fundamentals to be most useful for optimization.
Building CRUD apps using existing frameworks is coding.
Building said frameworks and the rest of the software that powers those CRUD apps takes more.
I don't mean to rag on simple projects or coding either. It's just as noble as any other profession. But to say that a random Rails or Node developer could write something like Postgres is laughable.
It's not the degree that makes that possible either. There's plenty of idiots who've graduated. It's the difference between studying how to do something and studying abstract concepts. People who have done CS degrees are more likely to have been exposed to the latter.
Maybe what you're saying is that the ramp-up time would be LONGER for someone starting from Rails or Node only knowledge to being an infrastructure developer?
Any highly sophisticated application ( Postgres, LLVM, etc ) requires some advanced levels of domain knowledge but they aren't impenetrable fortresses of skill that no mere mortals can access.
I think, somewhere along the way, a lot of developers started believing this fantasy that they were the keepers of secret knowledge that only a few select individuals knew... GOOG and MSFT perpetuated that with esoteric interviewing processes and cult-of-personality style branding. The truth is... the fundamentals of CS aren't terribly difficult nor are they even terribly exciting. You can absolutely learn them on your own or even as you go.
Indeed. I think too many problems in our industry are seen as unapproachable. There's a lot of people working on postgres, me included, who did not have any sort of deep background in databases before. You start working on smaller things (I started making int -> text conversion faster), review other people's patches, start to develop new features, ... Gradually that gives you a more and more knowledge in database architecture. And you read a few good papers here and there.
Obviously that approach doesn't really lend itself to writing something like postgres from scratch - but realistically that's not something you're going to do on your own anyway. And if you do start a new project you don't set out to do something absolutely complete, but build it iteratively. With more domain knowledge, you're more likely to get the architecture halfway right initially, but in either case you're going to have to redesign and redesign and redesign.
The "Sorites paradox" is something like: how many grains of sand form a heap? if you remove or add one, is it still a heap?
So, exactly what exactly makes you a programmer? that varies a lot depending on who you ask. Someone said a programmer should be able to detect and report a bug to a hardware manufacturer. Some others say that "learning" (partially, because most programmers don't know every single aspect of a programming language) a general purpose or Turing-complete language makes you a programmer.
I define an "X programmer" where X is backend, frontend, data, whatever... as someone who can not only implement a feature, but do it through understanding rather than through a heuristic of trial and error or reusing code. Also, a person that is able to troubleshoot what is going on if some of the underlying systems is not working as expected.
"We create our own demons."
The terribad thing about them is that they don't often explain why they are more efficient than the the naive path.
I'd recommend that you pose a series of tasks to your dad, and work with him to build them out, rebuilding them several times if necessary, to start that deep understanding of the art. Adopt a posture that this work is critical, and that you are working together. You'll both learn why as you do it.
About 30 hours a week for two months I finished the Front End Certificate from freeCodeCamp (highly recommend the site for starters). Then I decided it was better to build my own projects with the tech I wanted to learn (mostly React) using official documentation and tutorials. This is what I accomplished in around 3 months: www.rodrigo-pontes.glitch.me
Then I started to apply to jobs. After around 4 rejections, last week I started as Front End Junior Developer (using Ember actually) at a funded fintech startup with a great learning environment for the tech team.
Very proud of my accomplishment so far, but I know the rough part is only starting.
Congrats on your achievement. :)
May I ask, what was your background prior to moving into coding? A different technical field or trade?
But I always had a good mind for logic and analytical stuff, I think it helps a lot.
Frankly, it's ugly so you're automatically not going to be doing any product work
"Frankly, at the current level, without some improvement and time, you probably won't be doing much product work."
If you could clean up your demos to look more acceptable to the modern day reviewer, I think you would have better presented yourself.
"Clean up those demos to appeal to the modern reviewer, and you'll be better able to present yourself."
(Empathy also presents you better)
In this world, there're 10 types of people: there're good people who're half bad and there're bad people who're half good :)
If I were to create a product, I wouldn't try to be creative. I would just use some modern CSS framework.
https://www.learnenough.com/css-and-layout-tutorial/
Getting a job as a new developer after only 4 rejections is a great batting average. Sean Smith rejected 192 times before getting a job at Trustar. https://medium.freecodecamp.org/how-i-learned-to-code-and-ea...
I definitely can't afford to move to San Francisco.
Unfortunately it does not receive proportional attention from more technical forums like HN. Mostly because it is basically designed for non-developers. That's why I particularly like the marketing strategy of students giving stars to freeCodeCamp Github repository. It brings awareness to developers of all kinds and ways of life about what you are doing.
I believe freeCodeCamp will grow to be an essential tool for improving society and individual people's life by democratizing knowledge.
I hope to learn enough to be able to give back to the platform. It's pretty overwhelming to be in the situation I am right now, but once I am more stabilished I will sure contribute somehow.
Seriously, really good looking stuff for your early projects! I'm not surprised someone picked you up :)
http://www.opusnota.com/hnbc
My expectation is to double that within two years. I believe my former work experience can accelerate my path to be a senior developer. And then keep going on a more linear growth.
> but I know the rough part is only starting
Yes and no. Getting the first job is a huge hurdle, you actually have overcome probably the most difficult challenge of the early years of your dev career, so well done.
Of course, the challenges keep coming, and quickly, but from here on it will look much more like a (possibly rather steep ;-) upward curve wrt time rather than a huge cliff (hobby projects/qualifications -> first job).
So long as you're expecting and prepared for that, which you clearly are, you're now in much more of a position to control your own success, which in relative terms is actually a lot easier, less stressful, and even fun!
Certainly, I think Deep Work require full concentration. So when in the mode of learning, I find keeping focus instead of going to a website to read news, or checking e-mail/messages to be incredibly important in maximizing the incremental process of grasping concepts.
That being said, whereas the author seems to prefer taking a few months to go deep into it, I prefer to immerse myself over a long period of time by learning and practicing a few hours per day (just like an instrument), letting my mind stew in the knowledge during diffuse thinking periods, and then come back to it the next day.
Do you have any tips I can steal from you?
Great article BTW!
I mean to build up expert level skillset, you'd have to really dedicate your self into learning the particularities of not just languages but also their runtime environments.
Unless you have no life, and only sleep, eat, code, or super intelligent, being able to absorb and stay current with everything.....
Other than that, I just don't see the full stack mentality working
Never was truly a developer, and decided I wanted to accept a job as one. I've programmed in the past, how hard can it be?
Wow, it's been enlightening. Really hard. I thought it would be straight forward since I've used scripted quite a bit in perl in my past, but being a developer is much more than writing a few scripts to automate a task.
I'm a few months in now, and I am still slower than all my colleagues by quite a bit, and the main language I'm working in has changed already, moved from Python to Go.
Even right now, I'm stuck on an issue around pointers and data structures that feels like it should be easy, and I'm just not getting it.
All you can do is keep confidence up, and keep at it. Immersing in it, and knowing that irrational levels of effort will lead to results.
I thought it would be easier though :)
I couldn't agree more that it is tough going when you realize a challenge is more than you expected. That plus impostor syndrome is what caused me to quit on my first try.
We are moving a lot of things from Python to Go at the moment and it has been great.
Which I think is fair from their perspective, I think they expected a developer by trade to have assumed the role, and in actuality it's someone who has done a tremendous number of jobs around development. I'd be a bit concerned as well.
The great thing is, I'm learning a ton of cool technologies, and already see the major progress on a lot of fronts.
Therefore, the first few waves of programmers included a lot of "already olds."
This is always overlooked as evidence that older people can learn to program.
I say startup and if it fails like 80 to 90% due you gained an in-demand skill that you can use to make a nice living.
This is what I did and it allowed a three year runway to try and make it happen.
It didn't happen in terms of a financial success but it was a lot of fun! Way more then working for the man in any field!
Became an advertising copywriter after college and spent 7 years in the copy mines. It was truly a profoundly uninspiring industry (though I continued to doubt myself and never really got to where I wanted to and should have)
Founded a startup with a friend hoping for a fresh start. Took forever to find a developer so in some strange moment of overconfidence (sanity?) I decided I would take a shot at it and started learning Python. Found myself hypnotized by the codeacademy course and knocked it off in 3 days or less.
Some a few started programs then a developer friend came on board as an advisor and told me to pick up Django. In a few months (with him and another good friend doing all the heavy lifting) I got enough into the thing to be able to scrape data, make API calls and develop the admin interface.
With everything I learnt I found a block of that constant self doubt melting away. I had never felt so capable and in control in my entire life.
Startup wound up though and I had to take a job at a design agency. Though I picked up the basics of HTML and CSS there most of my work was managing clients (aarghh) Left in a few months as a writer at this startup working part time.
But within a month of me joining the CTO quit and the company was in massive flux. I just stepped forward and said I would code. The other developers happily took the help and I got my first job as programmer. The next 1.2 years were just full days of writing scripts to automate our workflow and figuring out this danged JS, Node thingy (which I really love now btw)
When this place wound up too and I studied React, now have a big 6 month project at this company helping them automate their workflow with an admin app. Am writing the fullstack code, all by myself. Which is so exciting and empowering.
Programming is awesome. It's my one advice to anyone who asks me for advice these days. It changed my life completely. From being a constantly depressed and volatile guy I am now fairly confident and really rare to anger.
Surprise bonus, I have become far more creatively productive after leaving the creative industry and have written a bunch of songs (that I don't hate) and also started learning to play the Piano, something I always wanted to do.
Next up is Algos and Data Structures the next time I have enough saved for a 3 month immersion. I really do think they are super important. Plus picking up a new language. Suggestions welcome.