Ask HN: Have you successfully done a career do-over, and how did you do it? - <AUTHOR> I'm not talking about switching professions at some point in your life. More specifically, doing your career over again in the same profession, in order to redeem your past failing career.<p>Either you got "too comfy" in your job, didn't learn much, then found a very tough time being a good fit for other jobs. Or you simply have stopped being a good hire for other reasons. What did you do to redeem yourself in the eyes of your respective industry? <comment><USER2> I suspect its not as easy as many people make out.

I was a great C++/OO dev for 10 years before I got bored, starting doing management, business focussed roles and more high level devops style work. After 10 years of that I wanted to move back into pure coding. With great experience should be easy right? Wrong.

I got a mid-level java/python dev job and it was difficult, I was out of touch and everything was different or new. Languages, styles, CI/CD, DI, git, containers, unit testing its a huge amount to learn. After a year I got laid off because I was getting paid like a senior but not keeping up with the grads.

A few years later I'm productive and useful in this new world but I dont really like it. I'm enjoying Scala and functional programming but with so many libraries and tools I feel like everything is so difficult and complicated. It takes a lot of study effort to keep up. Also I'm never sure if its because the applications I work on are badly designed, or I just dont really understand modern design. I have a business specialty which keeps me employable but I miss the old days when things were simpler.

Being "old" at 40+ really isn't so easy - I'm not sure you can ever redeem yourself in the eyes of the industry. Best you can hope for is get a non-tech domain specialty and find a big stable company that values experience and try to keep working on interesting projects. Once you're laid off or fired once its really hard to be the super confident hacker you were at 25.

EDIT - thinking about if you want advice. Get a business specialty or technical niche. Dont get too lazy, if you aren't learning on the job for a few years in a row, change the tech in the project or leave. It should be easy to keep employed but you have to keep working at it. Best career money-wise is to move to management, but its difficult to move back. Dont take the high paying job on a dead end project without a plan to get out.

<comment><USER3> I'm only 32 but that's kind of where I'm at right now too.

Mastered Objective-C and Mac & iOS development 10 years ago, now it's all Swift and nobody's really hiring for iOS devs in my area (Chicago suburbs), and nobody's hiring for native Mac developers anywhere, period. And all the best practices in iOS have changed drastically since then, too, in terms of both coding and UX.

Learned Ruby on Rails 8 years ago, but it changed so fast that most of what I knew about it has become irrelevant, and I never was very good at Rails in the first place.

All the best practices I've learned in HTML/CSS/JS/jQuery/Less/Sass are becoming outdated pretty quickly.

Spent 5 years mastering Clojure but it's obviously very niche and I don't have any experience with big data or anything else Clojure is usually used for, only traditional web apps.

It feels like there's no way to keep up with the industry while staying relevant and employable.

<comment><USER4> When you get into technology, you should go under the assumption that you will be a student for the rest of your life. Otherwise you will get left behind. My Dad is in tech (I followed his footsteps). For as long as I can remember growing up he always had a book with him in his free time. He started with punchcards.

<comment><USER3> I don't mind learning, definitely. I got into this field because I'm passionate about software and I enjoy programming a lot. But while I have a full time job and a large-ish family to support, it's hard to fit "3 years of professional React.js experience" into my spare time to put on my resume, so that when nobody's hiring iOS developers anymore, I can still get a job. That's what I'm talking about. A lot of the skills are very transferrable, but I've already been turned down for a few jobs simply because I just don't have the in-production experience with the exact technology they're hiring for, even though I could pick it up pretty quickly.

<comment><USER5> Want to get some production experience with react? Tons of webdev projects are using it at Mozilla. Come on over and find yourself a good first bug :-)

<comment><USER6> "But while I have a full time job and a large-ish family to support, it's hard to fit "3 years of professional React.js experience" into my spare time ..."

I'm sure your got the bugs, but the gp ain't got the time

</comment></comment></comment></comment></comment></comment><comment><USER7> I got a super comfortable job for the past 15years as a work from home C++ server programmer. It has allowed me to be around and watch my kid grow rather than be away 8-6PM and just come home to dinner and put them to bed.

It was very good pay at the beginning but it hasn't keep up and now it's not that good (to bad either).

A few years ago I started playing with electronics (Arduinos, Raspberry PIs and stuff like that). After a while I started looking and picked up a few easy jobs related to that in Upwork as a way to do something different as doing the same thing for 15years can take it's toll.

Shortly after I was picking more and more advanced jobs. I picked a few big clients and moved them off Upwork. I'm now doing advanced embedded system programming and electronic design as a side gig on weekends and afternoons and making more money than my main programming job (which I can't seem to be able to leave).

And that's the story of how I found an alternative to my comfortable job. If I ever leave it I will never go to an office again, I will just expand my embedded freelancing.

<comment><USER8> ' and now it's not that good (to bad either)'

looks like a few other skills have depreciated too

<comment><USER9> Criticizing the parent for grammar and even not using capitalization or punctuation. You aren't even following the norms for quoting on HN.

</comment></comment></comment><comment><AUTHOR> Thanks for the replies, everyone. Keep them coming! I didn't expect this topic to get this popular.

The reason I asked this question is that I am facing a career slump as a software engineer, and finding out that the software industry is brutal if you don't know how to carve a path for your own career.

And when I mean career slump, I really mean it. I'm living with my mom at age 35 which is quite the opposite of what someone expects of a software engineer at this age. Most people I know are buying/have bought houses and starting families. And I'm not at a point of self-sustainability yet. I can barely keep up with the insurance payments of my own car, and just keep the vision of having my own place to live in (once more, as I lived alone before things got tough) close to my mind. No longer be dependent of my family, get some privacy, some autonomy and instead of living every day switching between errand boy and going to a coffee shop for the free internet, to apply to jobs, or simply taking a break from my parents.

So that's pretty much me right now. I have 10 professional years of a "whole lot of nothing", no big signs of progression, maturity, or taking on more responsibilities. I didn't major in Computer Science, but I still expected my first programming job to be like, getting a mentor, working alongside a group of (in-house!) programmers, being able to ask them many questions and learn all about formal development practices.

Well, I got none of that in the places that I worked at. So seeing your stories gives me a good idea and hope that I can just move on from the past and have better companies approach me with hope and optimism, like I'm a bona- fide junior eager to learn.

<comment><USER10> What do you WANT to do (besides make money)?

Generally speaking there are 3 broad career paths for developers these days:

1\. Senior developer/team lead

2\. Management

3\. Startup founder / worker

</comment></comment><comment>====

Senior dev:

</comment><comment>====

PROS: Actually get to build stuff all day. Fun to program the latest and greatest. Be respected as an expert by your peers. Less meeting and paperwork hassle than other roles.

CONS: Can be sat on by middle management. Often don't get to drive product or strategic decisions. Low salary ceiling. Frustrating to be forced to do things you think are bad ideas.

</comment><comment>====

Management

</comment><comment>====

PROS: Get to make decisions (well, more than people beneath you, anyway). Potential path to the 1%. No more keeping up with the ratrace of programming platforms and languages. Can have a positive impact on the lives of your reports.

CONS: No satisfaction of hands-on product building, just lots of sitting in meetings, sending e-mails and crafting PowerPoints. Sometimes mentally exhausting to babysit your reports. Lots of Game of Thrones-style politics.

</comment><comment>====

Startup founder / worker

</comment><comment>====

PROS: Fun (well, more than corporate jobs). Be your own boss / have more independence. Work on interesting problems. Potential path to fame and fortune.

CONS: 90% likely to fail and put you in debt or company go out of business. Potentially limitless time commitment. Doesn't feel life-fulfilling to work on a company dedicated to disseminating cat gifs (or whatever the startup does).

</comment><comment>====

Ask yourself which of these 3 paths appeal to you the most, then write out a list of what you need to do to get there, potentially.

If you're living with Mom at age 35 however it sounds like you need to move to a big city like San Francisco or New York where they pay developers a lot more, but I don't know what your situation is.

<comment><AUTHOR> I'm definitely choosing path 1, which is to become a senior dev. I prefer technical-focused jobs. Learn from mentor programmers, get into teams and learn formal development practices, and then help out programmers less experienced than myself. I've never held a senior title, never led a group, nor even been involved with the process of hiring other programmers.

I currently live in Chicago which is pretty good for COL/salary ratio, for the average programmer. Caveat: I am not average. I consistently get offers from very low paying jobs- as in "$25/hr on a contract" low. This comes from the tendency to being let go from jobs without having another one lined up, so I never could afford to wait much longer for a better offer to use as leverage. Also, I don't qualify for unemployment insurance.

That has put me in the bottom 15-20% of local jobs by total compensation. If I were to restart as a junior programmer at one of the better companies, I'd actually be getting paid somewhat more than at my last job (and with insurance benefits for once).

<comment><USER10> In that case, I'd recommend specializing in one particular language/framework/domain.

Whether it's NodeJS, Python, C#, Swift -- pick one and run with it. "General programmer" is fine for management but not great for senior developer.

It seems little odd that at 35 you're still in the $25/hr range. Either you got a late start or maybe there's some soft skills you need to improve (running a meaningful meeting, developing a strong rapport with business partners and management, etc).

Good luck.

<comment><AUTHOR> >It seems little odd that at 35 you're still in the $25/hr range.

Don't underestimate the negative effects of having no job lined up when you're let go from your current one. You can't realistically negotiate for an ideal salary when you're currently making zero. Taking a less-than-optimal job offer is still better than being homeless, though.

For reference, my first web development job paid $12/hr (part-time) in 2007, in the Chicago area. I found this job by cold-emailing job listings on Craigslist.

</comment></comment></comment></comment><comment><USER11> Can't speak on it personally but about 3-4 years ago during my last job search I searched a few "Getting a dev job after 30" type queries. I was around that age and concerned about all the ageism claims. Apparently there are forums full of former developers either out of the industry or struggling to remain in it. There was a lot of talk about depression and guys being suicidal because they couldn't keep up with the industry, etc. Really eye opening to me at the time as the industry seemed strong as ever, even for outdated stacks.

If you're not getting any offers that's one thing I guess, but imposter syndrome is real in the industry. We all worry about being up to some rockstar level and all the grueling interview processes out there. Then we brush up for a couple of weeks, hit the market, and field multiple offers again.

<comment><USER12> I find the notion of age discrimination at 30+ to be simply ludicrous. I've been at multiple top tech companies, and the very common age ranges were mid-20s to (estimated) late-40s.

<comment><USER11> Older devs exist but they tend to be very senior with a lot of responsibility in my experience. Where does that leave the competent but non architect level dev who doesn't want to be responsible for that level of pressure? Maybe a 40 yr old wants to just take a mid level CRUD job for the purposes of keeping up with his mortgage and has no other ambitions beyond that? It seems like being "just a guy" is looked down upon the older you get which is not fair when there are plenty of those types of roles out there (mostly given to younger people)

<comment><USER13> Is the 40 year old comfortable taking the same salary as an early/mid career dev? Therein lies the rub.

<comment><USER14> Yep, that's it entirely. In your 20s it's super easy to take a lot of risks, what do you have to lose?

When I was 20 I decided over coffee to move to the other side of the world. Had some savings, not a lot but just did it.

Now, at 37, there's a mortgage to pay and a family to support.

I don't have the runway to do two or three years of low pay again to switch to another field.

I am aggressive paying that down though, so that I have this option in my 40s.

</comment></comment></comment></comment></comment><comment><USER15> 47 here. I drove my career into a dead-end.

Always been a generalist. Tried many times to do startups and saas products. It never got me anywhere. Between my projects, I worked as a freelancer, while living in many different countries. I took anything I could get. Earned enough money, then tried again. I have broad work experience, but nothing deep. Started a family late in life (with 44). Now I feel my career is a dead-end. Plus I seem to have lost my ability to put up with all that technological mess and the ever-new-shiny-thing.

I'm in a real slump. It's been a long time that I slept well.

Last year I created an online course. It's self-hosted and on Udemy. Compared to the time I have invested it generates peanuts, but I enjoyed the process of teaching.

So this is my plan out of the slump: teaching and corporate training. I figure that once I have created sufficient products, I may be able to make a living. And I'm trying to get my foot into corporate training. Though I'm an introvert, I do enjoy a lot helping others to learn and acquire skills.

I'm working on my public speaking abilities as well. Last year I gave a talk at a conference. I was nervous as hell, but at least some seem to have enjoyed my talk.

It's a long hard way, but I feel it's the only viable for me.

btw - if anyone here wants to chat, get in touch, email in profile.

<comment><USER16> I'm only 30, but I feel the same way. I've just never been interested in keeping up with the latest tech, I just like to get things done with the tools that work. PHP, JQuery and WordPress still work. I'm a generalist as well and have held positions or have done a fair amount of work in most areas of marketing in my 9 years in the industry.

I think your idea of teaching and doing corporate training is the right direction. You could then take your lectures and record those and build courses on those. That's how you create that content-momentum and spend less time building, thereby improving your ROI.

Good luck!

</comment></comment><comment><USER17> I started out doing telephone technical support 20+ years ago.

After the bubble in 2000 I moved back to NYC to work with my dad as a Private Investigator. I did that for 8 years until I realized I was too young for that life.

I applied to only one grad program (RISD) because their ID program sounded interesting and I wanted to get into the design world. Focusing on only one school made it a challenge and allowed me to fine tune everything. Like a cosmic coin flip.

After finishing up the program in 2010 (I specifically wanted a 2 year program because of the double hit of negative income and cost) my wife and I moved out to the Bay Area. I went from taking an internship at a design firm ($15/ hr as a 36yo is humbling) to my current role of building out a UX design team of 20 designers in Providence, RI.

In the 7 years of working in the Bay Area I burned through 8 jobs. Some were wonderful stepping stones, some were side tracks, a few were painful situations of treading water with waves constantly going over my head — but all were learning experiences that made my skillset hard to beat in the marketplace.

My current role is funding my family (oh yeah, had 2 kids in that 7 year span…. Don't drink the water in Rockridge unless you want kids) to relocate back to Providence, RI. It feels nice to come full circle back to the place that gave me a chance to experiment and reinvent myself.

My advice… life is about collecting experiences. Don't let any single experience define you. Be proud of your accomplishments, learn from your failures, and be nice to everyone you work with. My network has helped me out countless times.

Everyone roots for the underdog.

<comment><USER18> As someone who just found himself 41 and jobless, I found this a great perspective on things. TY for sharing, especially that advice paragraph!

</comment></comment><comment><USER19> It's all about latching on to domain expertise. Rarely is a developer a pure technologist, there is always some niche you've become involved in whether it be related to payments or UX or a subset of businesses functions. Assuming you have some meaningful knowledge of something non-technical, you can take that with you into a different area of software development.

I've transitioned across various technical roles by understanding software architecture, business process mapping, master data management, manufacturing, and a slew of other relatively niche areas of domain expertise. I don't think my work was anything unique, I was just aware of the niche components of the projects I worked on and did a good job marketing that knowledge.

<comment><AUTHOR> I am trying to specialize more in graphics, though I still have to figure out how large is my skills gap between "doing solo graphics projects" and "full- time graphics programmer", especially in math. After getting advice on my resume on how to hide the slow career growth, I've been told to spin it to show I am interested in this niche and show direction towards that.

If you had been able to read my un-revised resume, it would probably read like a story that feels the same in the beginning as it is in the end, with no clear conclusion. So I am working on a new version with a different spin.

<comment><USER20> It's probably better to specialize in business verticals than tech choices, and better to choose something that doesn't have so many kids learning it to build games. YMMV

</comment></comment></comment><comment><USER21> I fell into an obscure technology stack out of college (AS/400...in 2005). It was comfortable, but technologically unsatisfying and completely useless for my resume. I kept my skills sharp after hours, and then took a pay cut to jump ship to a "proper" programming job, which lead me to a _great_ high paying remote gig after a scant 18 months there. It was for a lot of reasons, and it was scary (had my first kid shortly before the jump), but it was completely worth it and not _that_ hard. Just, be good at it.

</comment><comment><USER22> I was working as a .NET Developer (still do), but around 2010, I was neck deep in a codebase that was passing around DataSets, stuck in VB.NET, no real leveraging of code. I interviewed for Amazon and tanked miserably, which was a wake up call for me as I wasn't aware how much I had let my skills slip.

I knew I had hit something of a low point so I started learning on my own again outside of work. I picked up several non-MS languages and technologies which helped me to understand better how I should be using the MS stack. I eventually found DDD, CQRS, distributed computing, and other concepts that colored my design perspective. I petitioned for, and through threat of leaving, got the department permission to use C# and I started to refactor code when I touched it.

It was a tough road. I sometimes didn't have patience with myself, but I started counting the little victories and kept going from there.

I am currently learning front-end frameworks, ES6, and Typescript. Nobody asked me to. I just know I will learn something in the process that I can apply in the future even if I never get a job related to this tech.

</comment><comment><USER23> I'm not sure what this means: _What did you do to redeem yourself in the eyes of your respective industry?_

Are you talking about someone who screwed up enough times that the mean free distance to a negative referral is essentially 1.0 ? I don't see industries as having 'eyes' but I have known industries that are relatively small communities.

I have known, and hired, a number of people who have 'redone' their career when the thing they started with didn't pan out, a chemist into a QA person, a semiconductor process engineer into a UNIX developer, a mom into a product manager. That sort of 'do over'.

And I've met folks who 'grew up' in a company doing one thing for 15 to 20 years and then failed to find an opportunity to continue doing that thing. Only to switch into a different career all together. Most commonly that is, "Hey you weren't you 20 years at BigCorp? What are you doing these days, 'mostly consulting'" sorts of conversations.

<comment><AUTHOR> I'm mostly talking about people that, for one reason or another, appear to wander around with no clear career progression or direction, so it looks like they are "junior" in experience despite being "senior" in total years worked.

And I think that re-doing careers by switching professions (as you say, chemist -> QA) is different than re-doing career in the same profession. Something like the former is different because it's easier for companies to treat you as a clean slate if you switch to something that has little overlap with your former profession. But I want that clean slate treatement just re- attempting my profession.

For instance, maybe I want to re-do my entry level years because I never got into Computer Science, and would like to get an internship at a leading tech company, because that is a better start than my reality, which was just graduate with no internships, no support group of professionals, nor recommendations for good companies. It was just me going solo and blindly applying to local jobs at Craiglist for low-budget clients.

So yeah, I'm not talking about career switching into another profession, but more like hitting the reset button on one, to do it better the second time around.

<comment><USER23> Okay that is helpful. In my experience, this situation -> _people that, for one reason or another, appear to wander around with no clear career progression or direction, so it looks like they are "junior" in experience despite being "senior" in total years worked._ has always been that the person wandering didn't know what they wanted, and if it had been years, didn't have tools to figure out what they wanted.

I am reasonably certain there are other explanations/causes but the three cases I can recall easily were all that the person got into a career in computer programming because someone one _else_ told them they should. And they stayed employed but they didn't have any idea about what they wanted to do so they changed jobs for all sorts of reasons, a girlfriend, a pay raise, a manager that kept bugging them at the old job. All of the change reasons were external to their career path.

One really wanted to be a musician. They could talk on and on about different styles and influences. They lit up and were on fire. One was lost, they had always had their life planned out for them by others and they followed that plan until it ran out (just after graduate college and get a job). And they never previously had been required to create their own plan. I didn't get to talk with the third person I can remember because they moved on to a new position before I had that chance.

If that resonates with you then my advice is to work on figuring out what you really care about. And I recognize that isn't an easy task, it was simple for me I was fascinated by computers and the systems you could build with them, so much so I build stuff just for fun. But a good way to search for the things that you care about are to explore different things (very hard to do as a single breadwinner in a family). As I told my musician friend, even if you're not an artist with a signed label contract, you have a understanding of what they are going through and you can write code. Can you find ways to help other musicians that way? Or music lovers? Or screenwriters trying to match music to scenes? or hospitality businesses wanting to influence the mood with music? You can get quite meta and still exploit the experience you've developed in an area you care about.

Without an amnesia treatment there is only so much you can reset :-) Mostly folks learn basics about work (its not always fun, how you work can be as important as what you get done, your boss may be an idiot but it doesn't change the fact that they are your boss, etc). So instead of 'resetting' it's more like vectoring. Now that you've been in the career for a while, if you know what you'd like to be then imagine you have reached that point and and then try to imagine plausible steps that you would have had to take to get there.

</comment></comment></comment><comment><USER24> I have done a career do-over. I took a lower paying position that involved pair programming. It was like developer rehab after the startup grind left me wondering if I could even contribute as a programmer anymore. The firm had a good reputation and recruiters were all over me, which was good. Then I took a much higher paying enterprise type job where it doesn't matter how I code and there is no point in doing anything better. Not sure what my next move will be, might get knighted as a data scientist soon, who knows. Good luck!

</comment><comment><USER25> I believe this is a time when a lot of software engineers are asking the hard questions about their careers.

Here's why: The technologies have become simpler and the barriers to entry have become low. Once upon a time, if you knew the mainstream languages (C++ and Java) it meant you paid your dues learning the hard stuff. Today, with nodejs becoming mainstream, and the cloud at the backend, developers who come from an "html programming" background can now build scalable and enterprise grade applications without breaking a sweat.

That leaves the "hard core" dev in a little bit of a fix. "Where do I go from here?" The front end is where the complexity is today. Its hard to compete in the AI and machine learning roles when there are phds doing this for ten years who are on the same table. Devops is also simple enough for someone with 3 years of experience of be on top of the game.

Now add to that the fact that the number of devs with 8 years of experience (what I consider the senior dev) grows bigger and bigger each year..

The next slow down I believe will be brutal to our industry.

<comment><USER26> >developers who come from an "html programming" background can now build scalable and enterprise grade applications without breaking a sweat.

This is a popular misconception but inaccurate nonetheless. It may appear that way at first glance, but there is still more to building "scalable and enterprise grade" stuff than just cobbling together a bunch of off the shelf components.

<comment><USER27> It's possible - but not without breaking a sweat. Coming from "HTML programming" you are looking at many years of experience and learning to get to that level despite how good tooling has become.

</comment></comment></comment><comment><USER28> I was a Fortran developer for a few years in the Aerospace business. After a while, I got sick of 1977 and just wanted to be a "regular" full stack guy.

At the time Rails 2.X was current and Clojure was pretty new. Both looked pretty neat. I learned Rails and Clojure on my free time, went through Michael Hartl's Twitter knockoff to learn, and applied for jobs.

Nobody really loved how little I knew about modern web dev, but several told me they could see I was bright-ish and sufficiently motivated that they'd take the chance. It was hard and stressful at first, because I didn't know _anything_ (JavaScript, jQuery, what's a "callback" function?, etc.) but I picked it up fairly quickly.

Made $80K my first year (pretty good junior dev salary in Texas) and it's been better every year since.

</comment><comment> rm_-rf_slash Not sure how applicable this is, but I've gone back to school to get an M.Eng now that I know I don't want to do (or only have the skills for) applications development forever. The focus is ML/AI but I've found a surprising amount of enjoyment out of working with hardware in the rapid prototyping class I'm currently taking. In retrospect, sticking with just one domain was probably why I got bored in the first place.

I haven't necessarily switched careers, but it's still not easy. If I could go back and give myself one piece of advice, it would be to knuckle down and learn differential equations and linear algebra. That's the difference between understanding how machine learning works and tinkering around with TensorFlow.

<comment><USER29> just started taking an online intro course to deep learning. really hoping that i'm not simply wasting my time and that if i actually want to one day pursue it, that i won't need to have a PHD in this field

</comment></comment><comment><USER30> I was a bored private equity lawyer, working like a ninja, ashamed by my firm's clients. I did a one year Masters in Environmental Economics, did some really interesting work and then joined someone else's start-up and ran a few side projects. That gave me the experience and confidence to really go out on my own. To anyone else about to pivot their life I would say: 1\. A British one year masters (not an MBA) is a great way to build a network and learn enough skills to make a fist of your next step, learningon the job. 2\. Don't do an MBA. Ever. 3\. Learn start-up skills on someone else's start-up before blowing your own cash on your own dumb-ass mistakes. 4\. Read Hacker News everyday!

<comment><USER31> I'm curious about the questionable PE clients if you don't mind elaborating a little bit. I'm in the PE space myself and haven't seen anything particularly shady? Obviously you can't go into details, but perhaps you can add a bit more colour to the comment?

<comment><USER30> I should probably point out that I only joined all the dots on the gangster bits many years after I left. At the time I only saw legal but morally dubious deals. Basically - if your business generates substantial negative externalities, you're in a very morally grey area.

</comment></comment></comment><comment><USER32> Aren't most software engineers already doing this?

Initially I was SDET, doing a bunch of boring JUnit work.

Then I wanted to get into video game industry while I was still young. Learned Microsoft Visual C++ along the way.

Then I got sick of the video game industry, the internet industry looks pretty cool, so I switched to it. Picked up PHP, Python, and Ruby all together at the same time.

Then I got sick of SysAdmin telling me what to do, so I learned a bunch of Linux skills and config management to become DevOps.

And I am kind of there now. I always fantasize of working on native mobile app, maybe one day I will make a switch again.

</comment><comment><USER33> Mine is a similar story to others, although I can't really say if it's a success or not.

For the past eight years I've been a C# developer, working my way up from mid- level to senior developer across a number of companies. I've built dozens of websites, contributed to open-source projects, and have given talks at local user groups.

The problem with being a single-stack person, especially in the .NET world, is that you look on at your peers on the Linux stack and wonder if you're missing out, so I left a cushy job as a senior developer at a large agency to be a standard developer at a software firm, one that focuses on everything but .NET.

I'm a month in, and it's been hard going from being the guy that knows things to the guy that struggles. Getting to grips with Linux and the terminal was surprisingly easy (probably because I was an avid Powershell user on Windows), but I've struggled to learn languages and frameworks quick enough. I have enough of a grasp of Python and Ruby to be able to look at code and know what's going on, but I'm still miles behind others, and it feels like a gap that won't be easily/quickly solved, regardless of the time I put into learning/doing. Despite the logic being almost exactly the same, it's crazy how one can go from making stupid mistakes in a PHP script to fixing a long- standing bug in an ASP.NET MVC site in the space of a minute.

</comment><comment><USER34> I think what this thread is highlighting more than anything is the importance of building real, meaningful relationships as you progress through your career.

As you progress, make a name for yourself as someone that delivers and build relationships with people. It's amazing how willing people are down the line to bring them on to their team/company in different roles if they already know you to be good and enjoyable to work with.

I'm already 33, and this is something I haven't been the best at, so definitely a wake up call for me.

</comment><comment><USER35> Did embedded software for a couple decades at numerous companies. Was good at it, but saw the path was going to slowly drift into the weeds (company was aspiring to build products competing with what competitors had discarded as obsolete). Noticed one of those rare ground-floor technology shift opportunities was occurring in the industry...

Told my students in my side/after-hours gig as professor "there's a rare ground-floor technology shift opportunity occurring in the industry, now's your chance..."

A friend was co-founder of a startup. One day, while in his home for unrelated reasons, he was on the phone with CIO lamenting their [then] inability to find iOS developers. He saw me, pointed, shouted "don't leave!", hung up, and asked if I wanted to do iOS development. "Yes!" I replied with enthusiasm. He then asked if I actually _knew_ iOS development. "No! but I'd jump at the chance & reason to learn!" We arranged a 6-month trial period, I worked long hard nights learning & implementing iOS code, and within 3 months was hired as the 2nd employee.

A few years later, that business was sold, and moved on to doing apps for major corporations.

Upshot: technology & business path was stalling out, used an opportune connection to take a risk in jumping to the near-start of a new yet equivalent technology path. Was able to leverage deep "magic" skills (intuition, arcane knowledge, refined techniques) to "do-over" my career, starting with decades of experience into a realm just years old.

</comment><comment><USER36> I'm dealing with this right now. I have a ton of experience--since I was a young teenager, in fact--of being a software developer, mostly in positions of technical leadership. Most of my resume consists of architect jobs. And yet, to pay the bills, explore a new area of the country, and expand on complimentary skills, I took a job as a senior DevOps engineer contractor at Idaho National Laboratory. Since my contract ended and I've started applying for jobs again, it feels like I'm being treated as damaged goods. I can't tell whether it's the fact I live in the Idaho Falls area or whether it's the Senior DevOps Engineer title. I get the standard "We've decided to pursue other candidates" non-reason. I have no data on which to base tactical changes to my approach. My applications are just falling into a black hole.

I know I am a very qualified candidate for any of these positions, _and_ I have lots of GitHub contributions where people can actually see my work. That doesn't seem to be enough, however. Can't I just talk to a _real_ person? My communication skills are excellent, and whenever I _have_ gotten in front of the hiring manager, it nearly always leads to an offer. Am I the victim of algorithm-driven hiring?

To plug myself a bit: If anyone is looking for an experienced .NET architect who's done a bit of everything (including my own startup), drop me a line. I favor working remotely but I'll relocate to a desirable area for the right position. [nathan] at aldenfamily |dot| net.

Oh, and OP, you didn't mention if your question applies to you, but if it does, hang in there. We don't have much control over the ridiculous state of hiring in IT, so there's not much we can do except plug along.

<comment><USER37> When you ask them why they turned you down, what do they say? Have you tried asking for resume feedback?

<comment><USER36> Most of the job ads (Dice, Indeed, etc.) obfuscate the actual company behind a recruiter and no-reply email addresses. I would love to reply and ask, but in 99% of cases the reply email is firstname.lastname@example.com.

I have talked to a couple of real people, one over the phone and one over email. In both cases I feel like I had a good rapport built. The first guy turned me down because his company only had the budget for a junior programmer. The second guy hasn't yet responded to my reply to him, but I'm hopeful.

Overall, I've probably applied to 100 different places (mostly remote jobs) and haven't even received rejections--let alone a reply--from the vast majority.

It pains me to no end that I am seemingly not allowed to simply talk to a real person. I understand why; I'm not naive. It still sucks.

<comment> p-funk Since you mentioned Indeed, I thought I'd mention I had a similar sort of "resume black hole" experience. For a long time, I wasn't really thinking and just applied through those job board sites, directly from the posting. Later, I started using those sites just to research companies, and then go to the company site and apply there, and all of sudden I get five responses in a week. If there's no company listed, a lot of times you can google portions of the job description and it leads to a real company. My resume formatting would often be messed up by the job board sites, so it probably went straight to the garbage. There's really no reason to go through a recruiter if you can avoid it.

<comment><USER36> I've been doing that whenever possible. I even have my wife helping! It does work for some of the posts where the _actual employer 's name_ is listed, but for recruiter-obfuscated posts, it's much more difficult. Sometimes we are able to reverse-engineer the original company using location and other information, though. It's still a draining experience.

</comment></comment></comment></comment></comment><comment><USER38> My first programming job out of school was on really obsolete tech: IBM Unibasic aka Pick Basic in an ERP system. It's a career trap on par with taking a COBOL programming job right out of university: [https://medium.com/@csixty4/pick-was-post-relational- before-...](https://medium.com/@csixty4/pick-was-post-relational-before-it- was-cool-ed610c9d0f14)

I broke out and rebooted my career by quitting and going to grad school full time and getting a Master's degree in CS from a fancier university in a tech hub city. My phone blew up with recruiters when I graduated and posted my resume online.

<comment><USER39> Any tips that you can give to someone who is about to finish his Master's when it comes to looking for jobs?

<comment><USER38> Brush up on your algorithms and whiteboard coding. Tech interviewing is a skill that you can practice and master.

Cracking the Coding Interview, Topcoder, Euler Project, etc. are good places to do this.

</comment></comment></comment><comment><USER40> Does anyone have any stories of career do-overs that aren't just a renaming of "software engineer" on both sides?

<comment><USER41> Exactly. Most of these read as "I went into a different specialization of the same field".

Where is the engineer that just chucked it all and opened a donut shop? That's the level I want to know about. Most of these are just stories of people making lateral moves in the same industry.

<comment><USER42> That's explicitly what this question is about though, the OP specifically says they want to know about lateral moves in the same industry.

</comment></comment></comment><comment><USER43> I reached the end of my career progression in IT Architecture. Started as a Solutions Architect, then reached Enterprise Architect. And there's no where to go after that.

So I took the leap and tried something different - became a Product Architect focusing on a specific technology. Now I'm a Mobile Product Manager, something that pays (probably) less than an Enterprise Architect, but tests out new skills like investment proposals.

My ultimate end goal is CTO. I think having an end goal in mind helps me focus on what do I need to do in this job or the next that gets me closer to that goal.

</comment><comment><USER44> I got too comfortable and thought I dont need to be harassed or witness others being harassed. I'm leaving this craphole and I'll be able to get another job when Im ready to go back to work. That was June of last year and I was ready to get back to work in September. Yet all those recruiters knocking on my door and landing me 30 phone & in person interviews never prompted an offer. Though six long months later and as of two weeks ago I started a new gig.

Im not sure why it took so long as it never did before, but it's either there is more supply then before for UI/UX Designer & Developers roles, I'm getting old(42), I do both design & development which the UX side ppl say Im not experienced in the study testing where this button should go(let's talk about that for hours) to developers saying I dont know React. Also, I thought ppl in my field might have been talking about how I just up and left my last job without mentioning the harassment(after Me Too movement started to roll i reached out to the heads of this big company reminding them that I reported a female colleague's harassment was ignored then harassed myself .. im a dude).

Overall I am glad that's behind me/working now and it just took time and potentially making ppl shut up about me when they dont know the whole story.

</comment><comment><USER45> I'm not sure whether this qualifies exactly, but when I first got into tech I thought ops was what I wanted to do. I always dabbled in programming (I did learn rails when it first came out) and followed generally the state of web development, but my skills simply never developed in that direction. I was boxed in by my job, and I learned nothing new there. I ultimately decided there was no path forward - so I went backwards.

I switched from a senior Linux admin to a junior rails development job a bit over one year ago now.

It's humbling to start over at my age. The degree to which one can specialize in IT is striking, and the amount of knowledge you learn and internalize is vast. I learn something new nearly every day now, and little (though some) of my prior skillset directly translates.

I'm very glad I took this step, but it's not been easy. I think a lot of humility is required, especially for somebody who is comfy and well established in their current position. But I'm lucky enough to work somewhere with patient and helpful colleagues, who do not view my age and lack of direct experience as a detriment.

One benefit of starting over when you're older: this time around, I fully realize how much I don't know, and I'm never afraid to ask stupid questions. The same was certainly not true of 24 year old me.

</comment><comment><USER46> I was at one of the FANG companies for 6+ years, joined right after graduation. However, I couldn't get senior due to me being naive (I have no ego, hence wasn't able to collaborate effectively with teammates, pissed a few off a few times), positioning of the product (none of my team members got promoted to senior while I was in that team). Last year I opted to change my jobs when my promo was denied again. I had hard time finding other teams to switch to (because of mentions of pissing off people) and also was completely bored of my existing team. FWIW, my technical work was never in question, just that no one supported me at promo times etc.

I am now in another good software company (similar to FANG, probably a level lower in terms of core compsci ability). The big change I have done is to accept that not everyone is learning all the time and not to try to do the same (its software engineering not research). I learnt this throughout the interview process by talking to lot of good college friends (who also work in tech in Bay Area) and acquaintainces recommended by friends.

My change isn't complete yet, hoping that this change will lead to better collaboration with team members and work output. Job title might improve too at some point in the future, though I am not too worried about it.

<comment><USER47> > The big change I have done is to accept that not everyone is learning all > the time and not to try to do the same (its software engineering not > research)

What do you mean by this?

<comment><USER46> Basically solve a small problem at a time (however uninteresting it is; a lot of things are uninteresting to me), never try to put the whole world in my head or continually come up with ground breaking stuff. I also realized that most other people are doing the same and this helped me align better with them.

</comment></comment></comment><comment><USER48> In university, I was studying biology. In my free time however, one day I had the strange desire to build a simple app that would simulate the solar system.

After spending months learning how to build software, I realized just how deeply satisfying software development was to me. So I started doing small, low paid freelance work building apps to build up a portfolio. Every time a project ended, I'd move on to bigger projects with higher pay. I've never looked back. I dropped out of school and my passion & skill have grown ever since. Eventually I had a good resume and the recruiters came to me.

Now I am working at an amazing company in the Bay Area. I love it. It's a job where I actually look forward to going to work every day, which is fortunate and lucky.

Given that the software world is always changing, I am always learning something new. Lately I've been learning React-Native.

</comment><comment><USER49> I owned a brick & mortar business and decided I couldn't keep doing it. The particular type of business has a late-night lifestyle attached to it, and a crowd that I felt was "bringing me down."

I left the business (I'm still a silent partner) and took a web development job. I had been building my own websites & things for about a decade by then, but had no professional experience.

I'm 5 or 6 years in now and getting bored with it. The bulk of the learning is over.

My life has been a series of big changes and disparate job-types, and it feels like another one is on the horizon. I sometimes lament not being the best-in- class in almost any discipline, but I find that I'm adequate or above-average in a great many things and there's maybe some comfort to be had in that.

</comment><comment><USER50> After so many years of growth and development in any industry, you have to change and shift to stay relevant.

A big part of being relevant is being interested. If you aren't relevant or interested, you aren't of any value in that particular niche of that particular industry.

What I chose to do when faced with this was to move into an adjacent field where my skills were applicable and relevant to the new and interesting challenge.

When the situation arose yet again, I took the knowledge gained by having applied my skills in new ways to focus on applying them in a constant state of change to help others in different niches.

It's all one big spiral staircase of shark's teeth, where there is no shortage of change, growth or people willing to take your place.

</comment><comment><USER51> Early 2000s, I was a full time procrastinator, college introvert, MTG/DND geek and homework/thesis freelancer. German government increased fees to a point which I could no more afford it, so I dropped out and found a real job.

<comment><USER52> If you will forgive me indulging in stereotyping: this is a very German response. Two sentences, brutally honest about the self, logically complete, and subtly amusing.

</comment></comment><comment><USER53> Started off as a concept artist for a few years, then started doing particle effects, moved into 3d environment modeling for a few years, and did a few characters, then moved into character modeling for a few years, then animation, then character rigging, then rigging automation through mel script for a few years. then worked as a technical artist for several years, then learned more programming stuff, then wrote a bunch of unreal script for a few projects for a few more years, then learned C# for unity and now i've been writing C# for VR apps for a while...

</comment><comment><USER54> Often, it's the situation that architects your decisions. If you can delay debts and dependencies, you can afford to do more. Live within your means. Downsize your needs. Practice frugality.

</comment><comment><USER55> Everyone should read

[https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a- pr...](https://www.kalzumeus.com/2011/10/28/dont-call-yourself-a-programmer/)

Tl,dr: do not be the guy who writes code in x language for y bucks / hour and applies to vacancies online. Be the guy who generates business value and talks to people in the industry. Start doing it today!

</comment><comment><USER56> I got my Ph.D. in physics in 2010, worked for about 1 year in research then took a year to try and build my own startup while collecting unemployment. I didn't successfully get a startup going but I learned enough web development during that time that I have been doing it professionally ever since.

<comment><USER57> How were you able to collect unemployment if you decided to leave to try to get a business started?

<comment><USER56> I got laid off and then made that decision. And I basically just started building websites that I thought would be cool. Trying to "get a startup going" might be giving myself too much credit.

<comment><USER57> Ah, that make sense. Incorrect assumption on my part that you decided to leave.

<comment><USER56> I wanted to try something completely on my own and I had done a lot of programming in my physics career so I thought that building a website would make sense. I SEVERELY underestimated the complexity of web development though. :) But I'm glad I did or I probably wouldn't have even tried it.

</comment></comment></comment></comment></comment><comment><USER58> Get another job. "Stopped being a good hire for other reasons" makes it sounds like you're experiencing a lot of rejection. Finding a new job is a numbers game, but also the more you search, the better you get at interviewing. Don't give up, treat your job search like a full time job, be diligent.

</comment><comment><USER59> I don't think it's a good idea for people like me..

I'd rather try to figure out a way to make my career (my skills) fun again. And find a way to get curious.

Or, to expand slightly past my skillset ( like management ), and learn that skillset, but as a superset of my existing skills.

</comment><comment><USER60> This industry is the very definition of career do-over. Every 5 years or so we change our activities. No one writes code or design like 20 years ago. With a career of 50 years, we are all doomed to have to change.

Adapt over time. Don't just jump. Take on new responsibilities. You will find experience crosses many fields. It's a lot about domain knowledge (e.g. financial industry) and we carry a lot of stuff over with us. Never undersell yourself, experience is king. Always be keen on learning, asking questions to younger self. Cross pollinate, experiment and be curious. Too many old devs just corner themselves. They shouldn't, they have a gezillion experiences and it always comes down to a race condition ;)

<comment><USER61> Well said.

Stay flexible and keep learning. I like the 4% rule: keep increasing the difficulty of a daily challenge by 4%, i.e. keep pushing your self to reach higher and higher.

</comment></comment><comment><USER62> I was a Symbian S40 app developer, after that Symbian C++ S60, developing J2ME applets. Left the job, launched my own app. Made first million doing that! Then I recreated the same app for Blackberry then finally Android, made tons of money doing this. Then it got soo crowded, clones kept coming and I lost my competitive edge. Then I launched a web app in a niche and built SaaS business. At this point - I had all money I ever wanted but I lost motivation, I started getting back to my roots. Hacking on projects, building expertise across dozens of different technologies. It was as if I am trying to justify what I've earned. Naive me! But then I realized that tho I am among the people who claim technology as their passion but this is not what attracted me to this field. What attracted me was a solving problem which many had in common. So, I left hacking and started building small products again. Launching 4-5 more products, all successful - I never failed at anything. But still, sometimes I feel that I just keep getting lucky. This thing still haunts me till date. I am not able to relax or take a day off either. Life has become hell lately, I feel I've to fight to survive. The world just doesn't make any sense to me!

<comment><USER63> So you seem really successful and financially sorted, but yet 'life has become hell' and you feel you have to fight to survive? Do you mean financially?

</comment></comment><comment><USER64> Yep I was a programmer at a university until 2002 when I had driven my own career into the ditch along with my personal life. I had to start over from a lower position after gathering my wits about me, and work my way back up.

The hardest part was getting that second chance, if you had a more senior job and you're applying for a lower one it's obvious to people there's something going on there. Your best bet is going to be honesty, and convey very clearly you've learned from your mistakes and that you want to improve, your open to feedback, etc.

Good luck.

</comment><comment><USER65> i am somewhat bemused that this got 38 upvotes in 16 minutes. i have no idea how hacker news' new page works.

<comment><USER66> It means there's lots of eyes on the article and the folks agree. No surprise there.

<comment><USER67> The 72 votes in 38 minutes as of now means that the few who upvoted it from the /new page are being validated by the general community after it got on the front page.</comment></comment></comment>


A look inside the fastest supercomputer in Europe - <AUTHOR> http://royal.pingdom.com/2009/06/02/a-look-inside-the-fastest-supercomputer-in-europe/ <comment><USER2> Processor: 32-bit PowerPC 450 at 850 MHz. The supercomputer has 294,912 processor cores. Instead of running it at a higher speed, they are quite correctly exploiting the parallelism. It's a net win for performance and energy efficiency. I guess that the desktops of the future will tend to follow a similar trend.

<comment><USER3> _I guess that the desktops of the future will tend to follow a similar trend._

They won't, because desktop software is quite different from HPC software.

<comment><USER2> I will like to believe that the Desktop software will move towards parallelism, may not be to the same extent as of HPC, but in a similar direction in the sense that it will certainly go away from strictly single core approach. It won't be easy, e.g. none of the web browsers today fully exploits all cores of a box. But, it will be fun to watch.

Off topic: I'm in your fan club, :) due to your "Hack the planet" blog <http://wmf.editthispage.com> since Dec. 1999.

<comment><USER3> The cost of finding all the single-thread bottlenecks and parallelizing them is immense -- akin to the Manhattan Project -- and the payoff would be that Intel and AMD could sell different (perhaps lower power) processors than they do today. Why bother? We have processors that work perfectly well for desktop software.

<comment><USER2> True. At the same time, we keep expecting more from our machines, fuelling feature growth and consequential demand for faster processing mechanisms.

<comment><USER3> Yes, so future apps may prefer to run on the Larrabee cores, but the fat cores that old apps depend on cannot be removed.</comment></comment></comment></comment></comment></comment>


Soldiers told to stop handing out food - <AUTHOR> http://www.usatoday.com/NEWS/usaedition/2010-01-20-haitifood20_ST_U.htm?csp=34

<comment><USER2> USAID: "Hey army, stop doing our job better than we can. You are making us look bad."

</comment><comment><USER3> "The food is flown by helicopter to points throughout the capital and distributed by paratroopers of the 82nd Airborne Division. At the tent city, set up at a golf course, more than 10,000 people displaced by the Haitian earthquake lay under makeshift tents. Each day, hundreds of people, many young children, line up for a meal.

Tuesday morning, the helicopters came only with water. Soldiers carried boxes of water in the hot sun and supervised Haitian volunteers who handed the supplies out."

Obama's "Brownie" moment.</comment>


Ask HN: Is ruby/rails still a good bet? What else should I learn? - <AUTHOR>

I've worked with ruby and rails (and other ruby frameworks) for many years now, mostly for backend works, and I love them. It's the only language I'm really fluent with and I'm thinking about looking to some more languages to deeply learn and experiment, to avoid that one day ruby won't be needed anymore and . I'd still like to be on the web development
Which languages and frameworks do think are good bets? Javascript (nodejs, angular/ember, and many more)? Go? Which others?
With all the client javascript frameworks I'm also starting to wonder if we'll ever need backend anymore or if it'll be just built as "premade blocks" and bringing all the focus to the frontend <comment><USER2> There's always going to be a backend, for security reasons if anything.

I've shied away from front-end (read Javascript) development because of it's fragmented ecosystem. Although I've taken an interest in Clojurescript recently...

As for a new language I'd recommend Elixir. It's functional which will introduce a new way of thinking and similar enough to syntax to Ruby.

Dave Thomas who wrote the original PickAxe book has recently released a book on Elixir.

<comment><USER3> Your experiences are nearly identical to mine. I've also moved away from keeping with the latest JavaScript tools/frameworks and have really taken to Elixir. I still write a ton of Ruby but having Elixir in my tool set has been awesome. Elixir is great for the things Ruby isn't, namely SSE/WebSockets and background processing flows beyond just fire and forget.

<comment><USER2> The thing that did it for me was watching Benjamin Tan Wei Hao talk on speeding up background jobs, which was a problem for me at the time:

[https://www.youtube.com/watch?v=2X1J1lVzRuQ](https://www.youtube.com/watch?v=2X1J1lVzRuQ)

[http://www.neo.com/2014/08/11/ruby-elixir-polyglottin- ftw](http://www.neo.com/2014/08/11/ruby-elixir-polyglottin-ftw)

</comment></comment></comment><comment><USER4> In my opinion Rails is the fastest way to build web applications, and the best framework for iterating as you react to new business knowledge. I don't see that changing soon.

Investing in a JS framework seems like a natural complement to your existing skills. Angular & Ember are great fits with Rails. I also like Knockout, which has an easier learning curve.

Another great fit would be Chef, which would leverage your Ruby skills and let you improve how you're deploying the Rails apps you're building.

If you don't have a lot of experience in low-level languages, I'd explore those for the learning. C is a lot of fun and very different than Ruby. iOS would be a practical choice, and apps make very rewarding side projects, although it might be a big change of focus for you. If you want to stay on the server side, I'd find something you can optimize with C or Rust: some critical code, or maybe a Postgres stored procedure.

<comment><USER5> This is a great advice if you want to be a generalist. I'm a specialist.

Take a look in this article, it illustrates pretty well the differences. [http://www.nczonline.net/blog/2014/07/15/generalists-and- spe...](http://www.nczonline.net/blog/2014/07/15/generalists-and-specialists- thoughts-on-hiring/)

</comment></comment><comment><USER6> I think many people will jump to Golang from interpreted languages for performance and memory consumption reasons, which in conjunction with lowest learning curve among modern languages and easiest way to deploy will give Golang an advantage.

</comment><comment><USER7> Ruby/Rails is quick to learn so it's a good intro. I learned this way and then expanded out into JavaScript then Angular/Node and now PHP and iOS.

Once you've got down the concepts of OOP then just experiment with different languages, see what you like and run with it!

</comment><comment><USER8> I'm a ruby & rails developer, and I love them both as well. They're good for a lot of things and are generally enjoyable to work with. My side project is a rails app and I wouldn't have it any other way. I think you'll find the day that ruby isn't needed or used anymore is far, far away. php is still around, as is java and perl. As long as developers go to it and use it, it'll still be used. And rails is still one of the top web frameworks out there.

Javascript would be a good bet. that's what I have been meaning to focus on as well. It compliments rails development, and opens the door to other JS frameworks that you may or may not use, and other things like node or even unity.

And by extension, learning those front-end frameworks (like angular) would be good too. Some shops that run rails have something like that in the front end. But knowing JS makes those frameworks more approachable regardless.

JS frameworks, single page apps... they're a way to go, but they aren't replacing rails by any measure. Just more options for implementation, which is whats great about the web. But in the end it's just another way to build a site. Worth mentioning is that there have been some high profile shops that tried to go fully embrace that idea (everything in the front end) but ended up reverting back to server rendering and sprinkling with JS.

Go is great if you've got google level problems, but I wouldn't want to write code in that unless I had an actual need that played to Go's strengths. If i can do it with ruby, i totally will.

So, I'd say ruby and ruby on rails are still good bets, especially if you're trying to build something yourself. But it's really up to you and your priorities and what you're willing to bend on. You could learn .net and php and do work for shops that use them in their codebase, and that's a way to go. You could learn objective-c and write apps for iOS. It's really a matter of what you want to do, what tools exist for doing that, and which one you prefer.

Coming from perl and php, i have never loved anything the way i love ruby and ruby on rails. It was well worth the years it took me to understand and master them both, and the associated knowledge (testing,html5,css3,etc). It's hard for me to see myself using anything else.

<comment><USER5> I don't want to start a flame war here. But why do I ever need to hit the backend? If not to save state. Logic must run only on the frontend

I don't see any need for a Rails controller. In the age of unhosted apps [https://unhosted.org/](https://unhosted.org/), any backend based app will lose in terms of performace (the network latency will always be there)

Ruby has awful performance characteristic. But it so cute. (seriously, someone have told me this, and sure enough, they love coffescript)

Let's assume if your project works. You get $500.000 in funding and 7 months later you realize that you need to ditch Rails because of the performance.

Just one example of the perf issues I have with Ruby. Try to compile a super simple SASS file. One time it takes 0.3 sec, the next 2 sec, then the following 1.5 sec. Like WTF is happening. And it is cached !!!!

</comment></comment><comment><USER9> It really depends on the context you see yourself working in.

Who do you want your skillset to be attractive _to_? And what exact jobs do you want to be doing?

A startup that expects you to be full-stack is a very different role than a backend engineer at an enterprise company (so your mileage with something like Angular, for example, would vary widely).

</comment><comment><USER5> I see people complaining about JS fragmentation. While it is a problem, it is just a consequence of how hard it is to create a complex webapp this days.

The thing is this.

Things in tech are always changing, and in this web dev of ours, things change faster than anything else. It's crazy. And it is hard. SUPER HARD. And we got to deal with it. So, deal with it.

Things like Exilir, closurescript or any other non-javascript thing are not the answer. Simply because they don't provide a solution on how to architecture your app (front and back end). There is a reason why the JS world is fragmented today. If someday closurescript becomes popular, I guarantee it will be fragmented with frameworks. Simple because WE STILL DON'T KNOW how to create webapps. Sure it would be more functional, pure or whatever. But who cares ?

Now let me tell you what is the situation in the JS community today.

There is the frontend and the backend JS ecosystems, and they have different approaches on how to architecture an app. While the frontend folks used (past tense here) to subscribe to a monolithic approach (angular/ember) the backend folks always subscribed to the unix way (single purpose tools doing one thing well).

I've being coding exclusively js for 3 years now. And trust me when I say that since last October (ng-conf), there is a trend in the frontend community to move away from these monolithic solutions ([http://www.breck- mckye.com/blog/2014/12/the-state-of-javascr...](http://www.breck- mckye.com/blog/2014/12/the-state-of-javascript-in-2015/)). This article really illustrate the feeling we have this days. (and here is the HN: [https://news.ycombinator.com/item?id=8679245](https://news.ycombinator.com/item?id=8679245))

Now think about the backend folks, The unix way have around for over 40 years, and the nodejs folks have embraced it. I guess they got something right. Just a though here. (Compare this with convention over configuration)

Nodejs tools like npm, browserify and gulp are the way to go for building your app and they completely replace rails asset pipeline and rvm (and much more flexible). And there will be no replacement for them anytime soon. They are around for about 5, 3 years and 2 years (an eternity) and they get things right.

JavaScript 1.6 (ES6) feels like a complete different language. Things like Map, modules and generators are game changers. And 6to5 is the best way to translate ES6 into ES5. So you should learn them ASAP if you wanna be ahead of the curve.

Now let me tell you this about Ruby versus JS world. While the former offers lots of magic with the goal of making the programmer job easier, the later offers the right primitives without any sugar at the cost of convenience. It seems crazy at first (I came from python world, and I used to love their battery included approach) but there is wisdom in the JS approach.

My conclusion, JS and its community has many flaws, but learn to see beyond the trees. The jungle is beautiful and vibrant. And thats be best we got.

PERIOD. and move on. PLS</comment>


Mathematical proof that rocked number theory will be published - <AUTHOR> https://www.nature.com/articles/d41586-020-00998-2 <comment><USER2> I was taught that the point of a proof was to convince other practitioners. This is why non-machine-readable proofs can get away with a lot of hand-waving if it obviously to "someone skilled in the art". By this notion, a proof is not a proof if only the author understands it.

<comment><USER3> There was actually a proof by a German mathematician a while back (name escapes me and I'm admittedly too lazy to look it up now) in which his proof was met with criticism for being difficult to understand.

It ended up being correct.

Not saying Mochizuki is correct, but (without getting too philosophical), a proof can still be a proof even if almost no one understands it.</comment></comment>