I had one of the best resolution for this year, so far I exceeded it with a banger.
My resolution was to go into the year without having any expectation. It is one of the most counter intuitive thing, but yes. I achieved nothing this year. I went from (-) to (0).
Resetting life and thinking through it takes a lot of effort. I am continuing the same resolution with sub-goal of hitting 1 if possible.
Expectations and desires are the root of all evils in your life. Control them, and you control you.
If I may, I would like to ask you something a bit hyperbole.
You outlined a few key points which include learning people skills, communication, and requirements engineering.
Do you think it wouldn't be possible for AI/AGI of the future to supercharge this process?
What I feel people like OP and I are experiencing is the impending doom that is about to fall on us as a result of automation.
We are inexperienced, and our only feedback from the real world is job applications, which are getting rejected at an enormous rate. Adding AI on top of that doesn't paint a good picture, especially when we (our generation) have easily adopted it into our workflow and started producing results. In rejection emails we get responses like, "we found a better candidate". This means our effort is futile and what we compare against is AI because it is the only thing we can see. We can't see the profile of someone who was better and got into the job.
What we fear is people with AI + communication skills will outperform us, who just honed our skills in computing. Simply because they are better communicators and have improved efficiency. This would mean senior engineers will be demanded more and no one would care for juniors.
Now without any job, building a career is a nightmare. On top of that, even after a job, having a secured career is a problem, like OP said.
Final questions,
1. Regarding communication:
What is a benchmark that indicates if someone is a adept communicator? Is communication a skill that can be learnt? And can those who have hard time communicating be better at it than AI that spits out almost correct sounding hallucinations?
2. Beyond programming:
How to prove that we have better fundamentals than other people? What screams "I want to work with them"? How to show that we can design systems that last long?
I don't have answers to all of your questions. I don't know where the current wave of AI will go, or what jobs it might eliminate. I have gone through one "AI winter" already and multiple popped bubbles and supposed threats to my career. The hype and expectations have never matched the reality.
Because developing software costs so much money, and requires taking a lot of risk -- because software development lacks the predictability and repeatability of "real" engineering, see my other comment -- corporate executives are always looking for ways to reduce those costs and get something they can plausibly call "working software." Those execs have tried no-code/low-code several times. COBOL and SQL both promised end-user coding, with the usual result, because learning a language is the easy part of programming. Offshore outsourcing made a dent for a while but demand increased faster than supply of programmers, and now the offshore places have their own domestic demand for programmers. The current thing is LLMs, what we're calling AI these days. The VCs and companies who have a lead and a lot to gain are selling a big pile of hype to corporations. And some of it may work, I don't know. Based on history I expect LLMs to displace people in lower-end rote jobs, and that will likely include at least some of the easiest kind of programming. If VSCode can write 75% of the code for you and underline the errors an LLM can probably do even better.
I started in my career in the late '70s, and have stayed consistently employed since then. I never planned to make programming a career (I studied history at school and my parents hoped I'd go to law school), but it was challenging, came natural to me, and paid really well, so I've stuck with it (and now I can't do anything else to make a living). But I can't really put myself in your shoes, or relate to the OP's concerns except in an abstract way. I don't apply for jobs or go through hellish (and useless) interviews, although I read about those. I don't see LLMs taking over my job in what's left of my working years, but I suppose it could happen.
I'd like to tell you to sit out the hype cycle, the AI/LLM bubble will burst, the hype won't turn into a workplace revolution, the jobs will come back. I don't know that for sure but that's what I would bet on. But that doesn't do you or anyone else any good, looking for a job today, in a terrible job market full of recently laid off people who have at least some experience and (if they paid attention) some professional contacts.
Friends and professional contacts -- real people I know, not connections on LinkedIn -- have always worked best for me, so I advise meeting people and making friends, both in tech and in other fields. I have got some surprise job leads and freelance opportunities just chatting with people. I make it a habit to talk to strangers (to keep my natural shyness in check), you can try that. Word of mouth really works. If I had to find work today I would be talking to everyone I know, people I worked with 20 years ago, not filling out online job applications. I understand that's harder for someone without a lot of work experience.
As I wrote in my original comment, employers always need people who can solve business problems and add value. They don't always need more programmers. Figure out how to present yourself as a person who can solve problems, figure things out, work with the organization, add value, and you will find jobs, because people who can do that are always needed. It just isn't that rare anymore to have the ability to crank out web app code, and LLMs will make that meager skill even less valuable.
If you can speak and write effectively people will tell you, I guess that's the benchmark. If you can keep someone's attention, persuade someone to change their mind, communicate your skill and see someone use that knowledge, that's effective. You certainly can learn to speak and write better. Try joining Toastmasters to get over fear of speaking to groups. Watch videos of good presenters and speakers, or go see them in person. Read books about good writing, read novels that have held up for a long time (classics), and read essays and books by people who love reading and writing (Umberto Eco comes to mind). Go to writing classes and workshops.
Communicating well, and having the ability and knowledge to talk about more than one thing, will make you more appealing to other people, including potential employers and customers. I have freelanced for over ten years, and the number one thing I hear from new customers -- almost without exception -- is how the last people they hired stopped communicating with them. It doesn't take much effort to acknowledge and answer an email or call, but too many people fail even at that.
I like to say that maybe there's no such thing as the 10X programmer, or the 10X communicator. But you can easily observe that most people are at 0X or just barely above that. Be at least the 1X, worry about 10X later.
As for fundamentals, I don't know how to show that directly. A lot of it comes from practice and mentoring from more senior people, at least in my own experience. I'll repeat that if you can solve actual business problems and add value you will have a big advantage. You show, don't tell. Knowing the fundamentals will let you show and perform with confidence because you will see the same problems over and over, and if you already know how to approach the problem your employer or customer will understand that you know the fundamentals.
Value means whatever your employer or customer considers valuable and worth paying for. That may mean increased revenue, decreased costs, more efficient process, competitive advantage, even a happier team.
I'll give an example from my freelancing experience. When I meet a potential customer I don't try to sell them on my programming skills or experience. I ask them to tell me the unmet priorities or pains in their company remotely related to IT/software. I've heard things like "Our system doesn't correctly charge shipping on customer orders," or "We think our internet bill is too high." Those both sound like problems I can fix, so I ask how much that's costing the business, to get some idea of how the customer values a possible solution. Then I will propose I deal with it. If I can fix it they pay me some price I come up with based on their perception of the cost, and if I can't I won't charge them anything. And invariably once I fix one problem -- show that I can add value or reduce costs -- they think of other things I might help with. I'm simplifying but basically that's how it works. I don't have to persuade the customer that I have this or that skill on my resume. Of course you need to actually solve problems. That's how you build long-term relationships with customers, because every business needs people who can solve problems. As a freelancer I focus on smaller companies, not necessarily mom & pop, but small enough that I'm talking to someone who can make a decision.
You can use similar techniques in full-time job interviews, but again it will work better if the interviewer has hiring authority -- rare in larger organizations these days when you have layers of people to get through. Rather than sit there while the interviewer goes over my resume and tries to mentally match that to whatever job they have posted, I ask "What can I start on tomorrow to solve an actual problem you're having?" And chances are good they have a list of things they would like to get someone to deal with. Now I'm not getting grilled over why I quit a job eight years ago, I'm getting a description of something that maybe I can do to show my value.
When I have been in the interviewer seat I see the same deer in the headlights faces over and over, worried and nervous, not asking any real questions (or asking something irrelevant), waiting to defend themselves if asked about details on their resume. Don't be that person sitting in the chair sweating it out. You have just a few minutes to make an impression so show confidence, make eye contact, show that you researched what the company does, and ask about problems and pain points you can help solve. That changes the tone of the interview, and the interviewer will remember you as someone who at least showed some spirit and initiative. You have nothing to lose -- worst case is you don't get the job, which is where you were when you walked in the door.
It is a waste. I graduated 5 years ago. Joined Master hoping something good would happen. Learnt a few things here and there. Now I am in objectively bad position where I ruined my family relationship, ruined health and ruined most of the things.
I'm in similar boat. But I love CS and it seems easy for me.
But I butchered myself (meaning no substantial skills on paper) so I am unhireable. People don't even look at my resume. Deactivated LinkedIn because it was causing harm than good.
If we did a good job then the paper should be written in a way that is digestible. When you don't understand things, follow the references to learn more (and there's probably videos covering most of the components we use).
In the Appendix we have a case study that should be possible to re-implement and run with a single GPU/TPU. We are hoping the community can build from that and innovate. If you take these steps and get stuck, feel free to get in touch!
Yes, I have the debilitating fear that I am going to be automated out. I already believe I have failed in life and stopped trying. Now I am en route to being automated out even before my career begins.
If you wonder what the reason is, despite starting CS in 2014, I haven't had a full-time job once. My skills are so diverse that I don't qualify for anything but happen to know a few of most things. So what value do I contribute? Nothing.
Hence, what OP writes is something I relate to. If I make it, it would be a shittier version of what is already out there because I do not have the energy/skills to make something novel. And all those rejection emails have proven that I am worthless. So there is nothing in this world that gives me hope.
OP, if you are feeling like me, the only hope I have is something stupid like faith. No idea why but I have started to trust religion because of the peace of mind it brings. This faith thing, at least helps me bring back on track and allows me to do even when I know, to the point, this all matters to nothing.
My resolution was to go into the year without having any expectation. It is one of the most counter intuitive thing, but yes. I achieved nothing this year. I went from (-) to (0).
Resetting life and thinking through it takes a lot of effort. I am continuing the same resolution with sub-goal of hitting 1 if possible.
Expectations and desires are the root of all evils in your life. Control them, and you control you.