Ask HN: Don't want to write CRUD apps for the rest of my career, what to do?
I don't want be stuck writing code to automate business processes for the rest of my life, nor does developing b2b or b2c consumer apps sound very interesting to me. The typical stuff I hear recommended to people like myself is to go the PM route or do something like devops, neither of which sound interesting to me.
There are certainly fields / problems that interest me (low level embedded type stuff, low latency programming, etc.), but they tend to not be accessible to someone with my educational background (let alone professional). And while I've considered school, it's a financial impossibility. On top of that, I fear I'm not smart enough to do a lot of the stuff and feel like a proverbial "code monkey".
At this point I'm wondering if I should just leave tech, but the lost earning potential tells me that would be financial suicide (where else can you make that much money with nothing but a HS diploma),but I'm just not sure, and feel I may be overreacting or not seeing some option, I know other people have been in similar situations, and I'm curious if anyone could lend me some advice.
61 comments
[ 3.4 ms ] story [ 114 ms ] threadThe alternative is to wait till I'm 24, but honestly the thought of graduating near to 30 is equally as depressing. I've also researched online schools, but too many seem scammy / low quality and tend not to offer a program I'm interested in
PS: I took a bunch of time off and then went back to finish my degree and graduated at 32. Still worth it.
I eventually found clarity by focusing on what I'd want to do if money was not an option & it helped me identify where my true passions were -- some were within tech & some were outside of tech, and it helped me make good choices about how to try and spend my time. Unfortunately there will not necessarily be a perfect way to make money at these things, but it can at least inform the direction you should work toward long-term. You've listed a couple of areas of interest, and so if you'd like to pursue those, try to make space in your life to always be working on problems in those spaces at least part of the time. But if your real interests are all outside of tech -- it's okay to leave tech. You ultimately don't want to be stuck in an industry that you don't really care about.
One other area that might be something to consider, which is something I got involved with after I left my job: conducting technical interviews. It's a great mix of getting to interact with real people, while still leveraging your technical skills (and usually remote, which is a big perk). The kinds of questions involved in the classical technical interview usually cater to people with strong algorithm & data structures knowledge, but are super learnable for anyone with not a lot of experience with those particular topics as long as you've got solid coding skills.
If you (or anyone else reading this) would be interested in chatting a bit more about that space in particular, I'm always excited to share more details about it -- it was a really positive experience for me to discover that world. My contact info is in my profile.
I'm not a gamer myself, but I don't think you have to be to enjoy working in the industry. Most firms would probably be more relaxed on university qualifications, compared to other software engineering firms (I think).
The gaming industry is pushing the boundaries of tech in a lot of places and is much more interesting than CRUD apps...
Instead join any related graphics domains: scientific visualisation, graphics drivers, jobs that involve writing game frameworks [1] for example. These jobs will give you both the fun of working in a hard domain combined with the stability that does not come with the intrinsic fickle nature of game industry. FWIW, I have followed this path of learning to write games on the side but not joining any game industry.
My 2$, I would say don't go to the extreme decision of leaving tech (that is also not a bad idea if you work it out) but before exploring all the other interesting options in tech and giving that a try, may make you think 'but if' in the future. Best!
[1] https://jobs.apple.com/en-us/details/113436938/game-developm...
Another idea is to join a small team, so that you have to become more of a jack-of-all-trades.
“A jack of all trades is a master of none, but oftentimes better than a master of one.”
https://www.phrases.org.uk/meanings/393950.html
Pick a game development technology that you like the look of (a language or framework or engine), do their basic tutorial, then drop by their forums. Almost all of them will have a "looking for collaborators" section where people with ideas but insufficient skill, or with skill but insufficient ideas, can shop around for partners to make something cool.
If you're not picky regarding tech, there's also TIGSource, which has a platform non-specific collaborators wanted forum: https://forums.tigsource.com/index.php?board=8.0
Or, if you're looking for something a bit more time boxed, a lot of game jams (game development hackathons) will help you find a team to work with on a no-commitment once off project to get a feel for whether this is something you enjoy. See if there are any running near you, and drop on by. Global Game Jam is a great one for this, but it's not until early next year, which may be too long a wait for you.
"there are no small parts, only small actors"
I do embedded and generally like it.
While I have a degree it's not in CS. Not going to lie, not having a degree makes it harder. I've been there. But several years of experience doing CRUD would help.
Best job opportunities are likely to come through a friend of a friend. And be at a smaller company where they care less about paper qualifications.
CRUD apps are an incredibly small segment of the market today. Most of the stuff are much more complicated, and more fun. If you're fed up with what you do at work, do your 8 hours and explore more at home, I always find writing code for my own more fun and fulfilling. You can even showcase this to potential future employers.
I've always managed to find some tangents even while dealing the the most boring of code - some of it automation, I guess using vim for everything helps as well - text editing became almost programming and it's definitely more fun (and faster) that way.
I'd argue that "CRUD" apps are all there is in development. Everything complicated broken down comes to creating, retrieving, modifying and/or saving data.
After understanding the more exciting challenges, they become easy, mundane "crud" aswell. Gaining knowledge and insight is easy and fun; the value comes from effective application of that knowledge, which is tough.
It requires real endurance to bring something from start to finish in the real world, not all of it is fun. It is unavoidable.
You don't need to do an online course. There are heaps of tutorials online and simple examples. You'd be coming up to speed on embedded systems and then use that + your professional experience to land a more interesting job. It should take you less than a year and perhaps a $100 or so to accomplish.
Do your business processes involve any matching/optimization? Fraud/anomaly detection? Geospatial datasets? Visualizations? Predictions? These are all opportunities to do some other-than-CRUD programming.
Coursera, Khan Academy, and similar websites are surprisingly good at plugging educational gaps.
There are certain tasks that you simply have to do yourself (understand the problem), and apply the solution accordingly as fast as you can.
I prefer doing some projects of my own to satisfy the nerdy/geeky guy in me. It's not so difficult to pick up on some IoT hardware projects and implement your own home automation.
For starters, perhaps procure the 3-4$ IoT gadgets (ESP8266 is very versatile) or an Arduino Uno (costs about 10$ for a clone) and try to learn a bit of electronics. Instructables.com is a great resource for this.
If this sort of a thing doesn't interest you - Then may check out writing chat bots (Telegram.org has a great BOT API) and there are many open source libs that support this so that you don't have to write the underlying methods each time.
All the best and hope this helps.
I see that throughout your post, you're mentioning finances a lot. Have a look at the FIRE movement. It made me realize that there are a lot of costs in my life which I don't need. Lower your spending, and you get a bit more freedom.
Famous article on this: http://dilbertblog.typepad.com/the_dilbert_blog/2007/07/care...
I was doing CRUD, got sick of it, took a few months off to study ML and now work on self-driving cars. Way better then crud, but everything gets boring eventually.
Background: A.I. Major cum laude + 9 yrs prof programming experience.
Have to admit that i was already quite fluent in c and C++. That helped tremendously. Still for most EE questions I often have to ask my dad ;-)
Name of restaurants: how to choose a good one? In a series of articles on the theme of “Opening a Restaurant” http://blog.khorzov.com , I look at the typical problems for you that any beginner faces when starting a business. Today it is the name of the restaurant.
The great thing is to hand the tools off to someone junior who is just able to understand them - the gratitude is very satisfying.
While I agree and personally do get frustrated with poor performance web apps... there are few companies that let you focus on performance over features. Throughout my (admittedly short) career all I've heard is "we can optimize later", "product is more important", etc.
Which I'm prepared to admit may be true. It's just boring as fuck.
Seriously, what you think is causing slowdowns will not be at all. Everything you'll be pushing for will save nanoseconds or 10s of milliseconds, pointless, unnecessary complications.
Generally in a crud app performance problems are caused by a single sql statement or a silly, unnecessary, loop within a loop.
Source: 15 years crud app dev and a lot of fixes for clients of their slow apps.
Regardless of what you do, you have to have your own initiative, a path isn't gonna just appear out of thin air and open for you, you have to open it up yourself.
You are absolutely wrong here. You can pick up Embedded & Electronics on your own(i have done it). Combine it with your experience writing CRUD apps, add a dash of ML in the Cloud and you can enter the End-to-End Distributed Systems market (eg. IoT etc.) You can go as deep as you want into Embedded/Electronics domain in addition to having the ability to bridge all the way to Cloud-based user-facing software. You learn Systems, HW and SW which is immensely challenging and satisfying.
PS: Do NOT quit your job. Just do what is needed, collect your paycheck and focus on studying new things. Once you do this, you will find that the same "boring" job can be looked at through a new perspective and becomes interesting once more.