And yes, you could try to make some site or app to earn additional income outside of your job. Yep, it is what I did from the Netherlands and it works well. I moved to South eu: quality of life, IMHO, is far higher even while it is cheap to live here, especially if you do not want to be in a popular city which I never wanted.
I moved when I was little over How quickly does the mind go from "my career is stagnating and finding better jobs can be hard" to "this is the worst choice of career". One of them is a valid concern, the other is a gross exaggeration that people who actually have bad jobs would laugh at. The guy who is complaining about having to learn new technology is complaining about not making enough money?
I would never hire him. People, when picking a career in college, still seem to believe that you can have a job for life. And get kicked fast if they kick up a fuss. The expectation that things are like what you were told by parents or grandparents maybe needs adjusting. You are not hireable with this attitude, it is not a programmer-only problem.
PedroBatista 8 months ago parent prev next [—]. Well I would never hire you either. This industry is even fuller of unemphatic know-it-alls quick to judgement than disillusioned programmers. I tend to agree, but there's been two competing posts on HN today, one about attracting developers like ants to honey with exciting new technology and the other about avoiding hype and delivering products with stable tech.
If i were a lawyer, I'd go to school once, and reap benefit form that education as an assets and build on it with experience. Software is not like that. Yes school is an asset, but it dates, and so does experience when the market moves constantly. Again I'm not complaining, but it's a thing. The problem is that there are a lot of technologies that are simply insufficient or bad. A lot of one way databinding frameworks are merely insufficient.
The reason why react and the VDOM won is that it's literally just client side html rendering with the exact same flow as a server side html template. VDOM is merely an implementation detail that makes this type of client side rendering efficient enough that you can trigger it all the time, no matter how trivial the interaction is.
Although I personally dislike React itself and rather use preact I consider the API itself to be pretty solid and definitively worthy of building a career on top of it that would last at least 10 years. I consider PHP to be critically insufficient because you have to force people to learn Lavarel otherwise they get the stupid idea of writing an old school apache PHP app.
It also has some stupid warts that provide no value. Overall it's not meeting the level of quality necessary to build a career on top of it. The only benefit it provides is that once you learn all the warts its merely ok. Java is also insufficient because it is missing very simple features. The foundation is solid but the details just aren't there. Getters and Setters shouldn't be a thing.
They only exist to please certain frameworks and some theoretical futureproofing. Replace them with properties that automatically generate getters and setters and end the discussion right there.
It's really sad how much effort it is to write a small data class in Java. I have a small project where I chose to use groovy simply because I had to define 30 data classes. Groovy is mature but it's not exactly popular, since people who don't want to use it are forced to use it Gradle.
The software industry isn't mature. That's the reality. There are lots of established but insufficient solutions. There are lots of sufficient but not established solutions. React is right in the sweet spot. PHP is clearly insufficient. Java is insufficient but close. Modern languages and frameworks rarely get traction and are replaced all the time. Groovy is something that you could in theory build a whole career on but the jobs aren't there.
Await with promises vs monadic promises is also a point of contention. The only thing that everyone agrees on is that raw callsbacks should be wrapped in a promise or future, but whether a promise is supposed to be used as a monad chain of. I honestly don't know. I would go with await because C has adopted it with great success but it's also not something that can just be added to an existing language without rebuilding the entire ecosystem and thus causing it to be a bad career choice.
It seems like generally speaking, science and engineering lacks prestige over there compared to being a lawyer or banker? I have no idea if this is accurate or not, and the English class system is pretty opaque to me. YawningAngel 8 months ago parent next [—]. I'm sure there's a small section of society for whom this statement is true, but I think most people of my generation in the UK take the American view that it's the money that counts.
There are probably more extremely high-paid banking and lawyer jobs in the UK than there are programming jobs though. Yes this is very true I believe, engineers are still 'just nerds'. I work in the exact same industry as him and earn considerably more. As always coding jobs are not fungible and finance coding jobs are not fungible either a. So unfortunately my sympathy is zero. If you don't like it, work at changing it, or shut up. Also the idea that programming is not in demand is truly laughable.
Trust me the issue is not on the demand side. WheelsAtLarge 8 months ago prev next [—]. Programming is becoming more like factory work. You are expected to continuously produce at a certain pace and quantity. But, as programmers know, things are constantly changing and are expected to keep up. It's stressful and challenging. From my point of view the fix is for programmers to create their own side project early on with the goal of making it a full time job.
I don't see the industry changing. I see the situation getting worse for programmers. As the number of people trained as programmers gets larger, companies will have more people to choose from while paying less and expecting more. So, the programmers have to change and adapt. I guess this is why it's "the worst career". In other "professional" careers, salaries generally keep pace, or even far outpace inflation, and one's standing and salary within the profession generally improves with experience.
With programming, it seems as though salaries are set to decline, and skill experience is constantly eroded as new technologies and cheap pools of labour become available, and then there's rampant ageism. It's somewhat like being an athlete perhaps - if you haven't made it big when you're young, you're looking at declining prospects, which is stressful and depressing.
That article is very specific to the author's case, and to be sincere, it seems to be most because of the author's fault than the career he chose.
He says coders are badly paid and it is getting worse but this is not true for many regions and niches. For example, a backend Java Programmer specialized in Commerce Platforms Hybris, SFCC, etc earns very well in Latam because naturally after the pandemic there is a rush after the online channel and we have a shortage of professionals. I'm sure the same just applies to different programming areas and regions around the globe. So it is just a matter of better exploring the options you have and lose the neighborhood job mindset.
It's not the career it's you. Here in Mexico having a programming career is guaranteed to give you a good income an QoL. So much that in the past 5 years we've had lots of lawyers, accountants, designers and people from other backgrounds fall for the developer bootcamps. I never got into this career for its earning potential, but because I just always loved programming. Somehow I've ended up in a FAANG making a lot of money, but the actual "programming" writing code portion of my job is small.
I feel like there's some paradox there, but really, I just want to complain on the Internet. If you asked me at 10 what I wanted to be when I grew up it was "computer programmer" and here I am, though I took a very zig-zagged path to get there no degree, and half a philosophy BA for example. And I'm living far from where I grew up and my parents and brother, because this is where the work is.
So I'm not sure how much sympathy I have for this article. Did you sign up for something? A computer at the NSA now automatically tracks your physical location for the rest of your life. Sent an email? Your email address just went up on a billboard in Nigeria. These things aren't true because we don't care and don't try to stop them, they're true because everything is broken because there's no good code and everybody's just trying to keep it running.
That's your job if you work with the internet: hoping the last thing you wrote is good enough to survive for a few hours so you can eat dinner and catch a nap. Wasn't that guy helpful? With the camel? Doesn't that seem like an appropriate response?
You can still find Jesus. You have not yet spent so much of your life reading code that you begin to talk in it. The human brain isn't particularly good at basic logic and now there's a whole career in doing nothing but really, really complex logic.
Vast chains of abstract conditions and requirements have to be picked through to discover things like missing commas. Doing this all day leaves you in a state of mild aphasia as you look at people's faces while they're speaking and you don't know they've finished because there's no semicolon. You immerse yourself in a world of total meaninglessness where all that matters is a little series of numbers went into a giant labyrinth of symbols and a different series of numbers or a picture of a kitten came out the other end.
The destructive impact on the brain is demonstrated by the programming languages people write. This is a program:. And once somebody wrote a programming language that let somebody else write this:.
According to the author, that program is "two lines of code that parse two lines of embedded comments in the code to read the Mayan numbers representing the individual ASCII characters that make up the magazine title, rendered in degree rotated ASCII art.
That program won a contest, because of course it did. Do you want to live in a world like this? This is a world of where you can smoke a pack a day and nobody even questions it.
This is a world where people eschew sex to write a programming language for orangutans. All programmers are forcing their brains to do things brains were never meant to do in a situation they can never make better, ten to fifteen hours a day, five to seven days a week, and every one of them is slowly going mad. So no, I'm not required to be able to lift objects weighing up to fifty pounds. I traded that for the opportunity to trim Satan's pubic hair while he dines out of my open skull so a few bits of the internet will continue to work for a few more days.
This post first appeared on Still Drinking and was written by Peter Welch. Additionally, although Washington and the District of Columbia may not employ as many computer programmers, they provide the highest annual mean salaries for these professionals. Below is a map that details each state's average salary and number of computer programming jobs.
After four years as a government employee with the National Security Agency, Austin Norby joined Blue Star Software, where he is now the director of cyber initiatives. Austin wears many hats, including technical presenter, talent acquisition specialist, course creator, teacher, and software engineer. In his spare time, Austin enjoys honing his infosec skills on CTFs, reading, gaming, and eating incredible food.
Interestingly enough, it was not something I was always interested in. I dabbled with computers at home when I was younger and wanted to learn, but I was also easily sidetracked with school, sports, and friends. By the time I attended college, I was set on getting a degree in mathematics, and one of the required courses was intro to programming.
I was excited to take the course, but I had no idea that it would lead to a career. This course was really tough because we started by learning Lisp. I've had to use it once since and I still think it's an awful language, especially when you're just learning how to program.
What really solidified my pursuit of a career in computer programming was the mixing of mathematics and computer science. This led to my interest in encryption and computer security, which ultimately led to my first job with the Department of Defense DOD. One thing that students should make sure to keep in mind is that the intro courses can be fun and easy, but there is always a class that "weeds out" less capable students.
What got me through the "weed-out" class was hard work, no doubt, but also I loved the challenge of getting something to work. There are few things as satisfying as pouring your heart and mind into a challenge and finally seeing the program compile, run, and return the result you were expecting.
That trait is necessary to be successful in computer programming. The answer to this question is very simple: job flexibility and security. Anyone who can program can be useful to any business currently because of the nature of programming.
It can be applied to any field and it's an exponential technology. Breaking this down further, a business has a product or service and of course requires financing and communication.
Programming can address all of those needs and do it quicker than any human so long as the problem is understood well enough. The real difficulty currently is breaking down problems to their basic components and understanding them well enough in order to build them back up as programs.
Some systems lend themselves to this very well, such as accounting, scheduling, and calculating. Other problems can be broken down into simple components, but computers are still not great at solving them due to computer vision or inherently difficult problems like the traveling salesman problem. Programming can create a website, product, or schedule; process payments; or send information at a percentage of light speed anywhere around the globe.
This is also what I mean by an exponential technology. It can grow and compound on itself while an individual is putting in a linear amount of effort over time. So what does this mean for flexibility and security?
Computer programmers have the flexibility to solve many different problems over their careers by learning one technology: programming. You could be an intern at a biochemical lab running analysis on the lab results. Then you could become an enterprise web developer and give unprecedented access to your company's data to internal teams to improve products and services.
Then you could become a cloud administrator to make computing possible for anyone in the world. And to wrap up your career, you could join a small startup and create an app that you're passionate about. All of these jobs exist for computer programmers, and the jump between them is simply a matter of learning any missing technologies and whether the company uses your preferred programming language.
It's hard to have that kind of flexibility in a career in other professions. Lastly, let's talk about job security. The job security for programmers is different from the old-school job security that existed many years ago. Job security is more like job availability. Programmers may have temporary jobs for months and then choose to leave, or the project is transferred to a new team, or the job is cancelled.
A project here, a project there. Therefore, the job search becomes much less stressful because it's not a question of if, but when, where, and what I will be doing.
There are so many systems and processes that can and should be updated to modern levels of technology, and those businesses all around the country need to hire computer programmers in order to do that. One point I will concede regarding my previous statement is getting an internship while you're in school. This can be more difficult because a lot of the developer jobs require about four years of hands-on knowledge in order to know enough to be valuable.
This isn't a hard-and-fast rule, but from a business perspective, it might take more time and energy to create a project that is challenging and rewarding for the intern but provides enough value for the company after accounting for setup time, training time, hourly rates, and tear-down time after the intern leaves. If you're struggling to get an internship, don't worry. That is not a setback and just requires that you take a different path.
One of the best ways to stand out to a future employer is to create personal projects to show that you can and like to code. The next question people ask is, "what personal projects should I be building? If you want to get into mobile programming, program an app that does a few things. If you want to get into web application programming, create a few "dummy" sites like a portfolio that a potential employer can visit and navigate.
If you want to get into cybersecurity, join some Reddit threads, learn about security online, and participate in capture-the-flag CTF competitions most are free. I also recommend that you read as much code as you can find. Reading other code will help you make your code better and give you "recipes" for solving problems that have already been solved.
Lastly, to address the actual question that was posed, you can do any of this from almost anywhere. Simply work with your recruiter or HR rep to figure out where would be the best place to put you given the company's goals and your goals. Starting about a year before graduation, I was able to secure an internship with a company that allowed for part-time work during the school year and full-time work during the summer.
I cannot stress enough how much this boosted my career prospects. If something like that exists in your area, definitely apply for it! I worked throughout my last year and started with the DOD after graduation.
I spent about four years with the DOD, moving around to experience and expose myself to all it had to offer. I worked with many different languages, technologies, and types of people and got exposure to a powerful mission.
During those four years after graduation, I did not stop learning. I studied for certifications, I read books, and I took classes at local schools. If there is one piece of advice for computer programmers specifically — but really anyone in any industry — it's never stop learning! For computer programmers, it's a dual-edged sword. There is so much to learn, from languages to technologies to operating systems to networking to mobile to cloud to you name it.
However, the landscape evolves quickly, and a quality programmer must also pivot to learn or stop learning skills as the industry needs them. Learning a specific technology is never a bad decision, but you must not fall victim to the sunken cost fallacy; do not spend more time in a technology once you know it will no longer provide you, your employer, or your industry value. First, we'll start with the pros. Currently, in our industry, the pros are plentiful because of how many things are being transformed from old technology to new technology — that provides many job prospects for computer programmers.
Modernization of point-of-sale systems to the cloud; updating websites to use the newest JavaScript frameworks; and designing modern, fast, and user-friendly mobile apps are all very hot jobs right now. Along with the multiple job prospects — only a few people can fulfill the demand on the industry — comes rather high compensation. But a terrifying thought still troubles you. You are building side projects, messing around with some Node. You are all doing the same, listening to the same podcast, reading the same blogs.
But your tech lead doesn't care. They have seen it all before. Another ambitious coder in the sea of fresh devs, bootcampers and self-taught wizards. Why should they anyway? Because despite the infinite vacuum of blog articles, despite the numerous tricks and shortcuts, you struggle. You stumble navigating the codebase and you check Stackoverflow more than you should. If you expect a magic answer, some bullet points to get you out of trouble, I am sorry to disappoint you. I have none.
What will benefit you right now, is to stop doing some of the things that are literally dragging you down. After working with dozens of developers, I made a list of the things that literally kill their progress. How many of them are you still doing? Look, when you code for fun, you only do the fun part. The coding puzzles, the sexy features, the shiny stuff. And guess what? That is what all other developers out there love to do as well. Accept once for all that this coding thing is not a hobby, it is a profession.
And it is not always going to be fun. Like anything in life, it has ugly parts. The road to expert developer involves legacy code, hidden errors and unclear requirements. No offence, but many are just trying to reinvent the wheel in order to self promote themselves.
The things you read online are disconnected from the reality of your code. A nice library in one project can be a terrible choice for another project. The one character trait all great programmers have in common is they live in the now. A piece of code needs refactoring, they do it now.
There is a bug in the UI, they fix it now. The local environment is a bit slow, they optimize it now. Great developers know very well that later translates to never. What I am asking you is to be honest with yourself. There is a big popularity contest going on in the software development community and everyone wants to be part of it.
In reality, it is more gossip and trend spotting than anything else. Coding will. Or the freaking JavaScript snippets.