I’ve recently spoken to a few young CS graduates who can’t find jobs. These are folks who got their bachelors degrees at schools one tier down from the super elite, e.g., University of Michigan rather than Stanford. I.e., a similar situation to what was recently covered in a New York Times article about a Purdue CS graduate who couldn’t find a job better than Chipotle and an Oregon State University graduate who applied to more than 5,700 positions.
Hiring a fresh CS graduate is risky for an employer because universities teach students how to work for an engineer, not how to be an engineer. Assignments in CS undergrad come in neat packages in which everything is doable within the allotted time. Engineering starts with talking to a customer to find out what is wanted/needed and then figuring out what is doable and which capabilities should be scheduled into which release of a program (the highest value and easiest-to-build capabilities go in v1.0). An employer thus has no idea whether a fresh CS graduate has or will ever develop any of the skills required to be useful. (I remember helping one very capable MIT graduate whose customer was unhappy with him. He’d spent all of his time on a paid project refactoring and reengineering code such that it was, in his view, more maintainable. He had let all of the customer’s requested features slip. The work that he’d done on the internals was invisible and undetectable to any user, admin or otherwise. He didn’t understand why he wasn’t a hero.)
What advice did I have for young people stuck in this situation? I advised against trying to cram for the puzzle tests that the most sought-after employers use as screeners. I advised signing up for freelance projects on Upwork or similar, charging nominal amounts if necessary to win clients, and then using the freelance projects to put together a portfolio. “If you were going to build a house would you hire an architect without looking at a portfolio of previous houses that the architect had designed?”
I’m not sure that I have found on the Web an example of what would be persuasive. https://benscott.dev/ is great from a visual/design point of view, but it doesn’t show the client’s perspective. I would prefer to see a portfolio that includes a photo of the client and what was the essence of the original request and then some screen shots showing that the client-requested features actually were developed. Finally, the project blurb should contain something about which tools were used, e.g., MySQL/Node.js or SQL Server/Microsoft .NET/C#.
Readers: What else would you say to a recent BSCS grad who is applying everywhere and getting interviewed almost nowhere?
Separately, if all else fails I think there are plenty of jobs selling marijuana in New York City, with at least 15 shops within 3 blocks of my Lower East Side hotel.
Make a significant contribution to an active open source project (i.e. on github) that will be recognized be as many users as possible. This could demonstrate to a potential future employer that you were able to listen to the customer and implement the requirements.
Better than signing up for freelance projects, because the freelance project could be proprietary, limiting the amount of disclosure to future employers. The open source project should also be significantly more visible than a freelance project.
The other advice, if the person cannot find a job, would be to go into trades, it will be a long time before AI starts replacing trades and there are a large number of skilled trades people at near or above retirement age. If you graduated in electrical or computer engineering, becoming an electrician should be very easy and could lead to more potentially interesting work and opportunities than being a code monkey or working for meta on the newest brain washing app for kids. You can also move to an affordable area in the country, lots of trade jobs everywhere, and have a much easier time purchasing a house and raising a family.
One issue that I have with open source projects is that there isn’t a customer. A lot of it is programmers writing code for other programmers.
Not everyone can be an influencer in Stuart, FL. 🙁
Re: Trades
Tradesmen are in demand, and not a bad idea, keep in mind that it is hard physical work young un’s often don’t want to do. Also, if they get into these jobs, they really need to think about owning their own trade business, and having others do the work when their back starts hurting. Have you ever worked in a crawl space or attic or under a 6000 lb SUV on a Chinese lift? I have. There is a reason people don’t want to do that at all, nevermind their whole career.
Re: Entry Level Jobs
I told my teenage niece, “If I had to do it over, I wouldn’t even go to college.” She asked me what I would do instead. “Work in a Chipotle half-time and a MJ shop half-time, complementary jobs.” OK, I just made that up, but I told her something like that. While I was working at some entry level job, I would be thinking about starting my own business, and building that into something. Stay off social media and do stuff IRL. Do something fun–my friends from high school were ski bums in Colorado, giving lessons and meeting girls. I wish I had joined them, I wouldn’t be much worse off, financially.
Re: Open Source/CS
Yuck–open source is the gift that keeps on taking–especially by FAANG. I’ve done plenty of it, and it is thankless and the entitlement of GPL commies is off the chart. One CS idea would be working on a startup consultancy to fix the slop code that A.I. generates, but again you have to have something that pays for the ramen in mom’s basement until your business hits.
I think the best idea, overall, is to have rich parents that give you a trust. So you can live…in Stuart, FL.
I agree with @Pavel — join one or more open-source projects and contribute as much as you can. This is far more valuable than freelancing early on because, with freelancing, you are often on your own without mentorship or collaboration. Open source, on the other hand, gives you opportunities to interact with others, learn from code review feedback, and work with established codebases. Once you built credibility and experience in one or more open-source projects, you can then consider moving into freelance work.
I was a contributor, voter, project manager, and later a porter for a well-known open-source project under Apache (I went emeritus over 10 years ago). This came after many years of development experience and working with multiple companies, including two startups. Having my name associated with such a well-established open-source project has not only earned me respect but also given me a stronger voice within my current Big company.
All the local municipalities and counties throughout FL are constantly hiring IT workers at all levels – not so much software developers but some, and a CS degree is the usual education requirement. Certifications are helpful: networking, computer security, etc. Starting salaries vary widely, usually the larger cities pay more, often much more.
@Pavel: Yes, pursue a career in a trade is not a bad idea. (Or re-train as an RN!)
Forget about anything remote or top tier. Suspect there’s a glut of guys chasing 1 remote job or they’re all chasing Nvidia. Open source was the big thing 30 years ago. Not as much as leet coding now, either because the industry is now a spectator sport or because everyone has a forked github project he credited himself for inventing. Leet coding is what the industry wants now & fighting the industry is futile. Lions review what the top guys are spewing on linkedin. It seems 1 stint in a top tier company sets them up for life & from then on, they just hop around the top tier. Even though lions never became wealthy or got into a top tier company, a strong indicator of success was forking lion software & putting themselves in the credits. It might have predicted ambition.
For just $4.20 a day, China offers a solution for young adults unable to find office jobs: “China’s unemployed young adults who are pretending to have jobs”
https://www.bbc.com/news/articles/cdd3ep76g3go