5 ms·
One of the best things that I’ve done for myself, career-wise, came during a 6-month sabbatical between jobs. I had a bunch of projects that I wanted to do, but
by roughly 1y ago
One of the best things that I’ve done for myself, career-wise, came during a 6-month sabbatical between jobs. I had a bunch of projects that I wanted to do, but I kept finding myself stymied by scope creep - when you don’t have any constraints, it’s hard to decide how big a project should be, and the projects would grow to these massive unfinishable beasts.
I decided to constrain myself to one week per project - whatever I could get done in a week was what I’d do for this project. The experience of going from zero to something useable in either a new language or a new framework or a new field in a week was enormously confidence-building - learning that I was actually pretty good at this whole programming thing and breaking through a bunch of walls I’d run into previously in my professional career gave me an incredible amount of trust in myself to be able to take on new challenges that really helped me when I was looking for a new job. At the same time, it reminded me what I loved about programming - in a week, I was able to build something that solved a problem I had or that someone I knew had, and I got to do so in a creative and intellectually challenging fashion.
If ever you find yourself in a position to take a couple months off between jobs, skip the leetcoding or whatever else and just build some toy projects - you’ll be amazed how much you already know.
- jonator 1y agoI've done the same, but with AI generating a lot of the boilerplate, and helping generate automated tests, has accelerated this process considerably.
- hn_throwaway_99 1y agoI would just add that gen AI can actually be a fantastic aid when you're building some toy projects just for yourself. I am primarily a backend engineer, though I am capable on the front end, just not particularly fast. I am especially slow at the voodoo that is CSS. In the past, I would have been turned off from doing some end-to-end personal projects because I know I would have been bogged down just battling CSS for hours and hours (it's particularly problematic that I'm slow at CSS but also a stickler for how I want things to look). With AI tools I can literally just say "make it pretty". It gets me about 85% of the way there, but importantly it gets me to the point where it puts in all the styling framework and then I just have to fix bugs/edit/tweak it, which goes very quickly. So now I've found myself much more likely to build personal projects because I know I can get past things that in the past felt a bit like quicksand to me.
- whartung 1y agoIt's a balance I find. On the one hand, the machines can spin up these bridges over unfamiliar code chasms. But on the other hand, you (at least I) have no investment in the code. No familiarity with it. No "skin in the game" when I can tell the AI to just redo it. One way around that is by using the "Chat bots as search engine", and then, rather than cut and pasting stuff into your project, type it in by hand. Even if you're just straight up copying it, by typing it in you have a bit more connection to it. When I do that I can better see the unfamiliar patterns rise out of the code. It's much better for me than just reading it. Also gives me opportunity to tweak it as I like, which can break things, which can teach me things. Mind, I've been advocating this "type it, don't paste it" philosophy for years and years, for any code snippet found in a book or tutorial or wherever. It's just now with the bots, the code is more tuned to our exact use case, and the incentive for moving it over is less. But I find grabbing a blob of code, pasting it into my project, and getting errors so that I can tell the bot whats wrong is not particularly satisfying. Watching Claude figure out its own errors even less so. (It's very cool to watch, just not very joyful to me outside of "wow, that's cool".) On the other hand, I have no problem pasting a snippet back with a "what exactly is this doing here" to get better explanations of what I'm seeing.
- caseyohara 1y ago> rather than cut and pasting stuff into your project, type it in by hand This type of mechanical copying is probably very important for learning and staying familiar with what it is doing. Just last night I had ChatGPT help me with some algebra and geometry for a hobby project I'm working on. I'm rusty and got stumped so I asked the bot to unblock me. It helpfully walked through the entire simplification / substitution / solving process step-by-step, which I manually copied down using pencil and paper. Following along like that, mechanically, really helped it click for me. I plan to do more of that.
- krgyxe 1y agoHard agree on this. I've come to the point of using current AI tools as "search on steroids". For coding tasks, I now ask questions using more generic language, looking for references, and when the AI comes back with specific examples, I try to refine the question in terms of the example that the AI has given me. "Kinda like that, but inside of Book, I actually want to do X with the Author" This makes it so that I have to manually translate code that the AI is showing me to my specific case, typing it out myself in my code's context. This has helped immensely with developing my familiarity with a couple of new (to me) frameworks, and with slowly adding to my overall understanding of what I'm /actually/ building.
- neogodless 1y agoIn my younger years, classic ASP + SQL was easy, and I had IIS + SQL Server set up on a server at my house. And I could write HTML/CSS/JavaScript. Deployment was... run update scripts, push ASP files via FTP. Now I know there are newer ways to do things, and I'd love to set up CI/CD in my personal life, but every time I want to do a "toy project" I get hung up researching and thinking about my own personal software development life cycle. What you choose for hosting and deployment for your toy projects?
- roughly 1y agoI've got a VPS and domain I've had for a long time - for most of these, docker compose + the VPS did the job just fine. I was in the same boat - I'd fallen behind on a lot of the ops stack, and project setup wound up being a tar pit for a couple projects before I got frustrated and just said "Fuck it" and did it the dumb way, which wound up being the correct approach. I found the trick with the personal projects was to pick the thing I was trying to learn with that project and focus on that - if I was trying to learn React, don't also try to learn kubernetes or lambdas or anything else. You really have to be comfortable with your project kind of sucking for all this to work. So I'd say if you want to learn proper modern deploy + CI/CD + etc, take a project where you already know the rest of the stack (hell, make it Hello World if you have to) and use that. Keep things simple and in scope, get something stupid working, and then iterate to make it better.
- joshgachnang 1y agoFor most of my toy projects, it's a systemd service file and rsync + restart command for deploys. Might have to SSH in and run an install command occasionally.
- bloomca 1y agoYou can get a VPS in any cloud provider and treat it as your server, just copy files to it. It depends on the scope of your projects, though, if you need a lot of resources it can get pretty pricey for just toy projects. I pay $12 for a server on Digital Ocean, and I host multiple servers behind an Nginx. But I am primarily a frontend/Desktop developer, so they are simple.
- tayo42 1y agoUnfortunately the leet coding is key to getting the next job
- roughly 1y agoFor what it's worth, the two tricks I found for leet-code interviews were 1) do the simple stupid thing first - get something _working_, and then make it good and 2) explain what you're doing and what you're thinking about to your interviewers. I'm still not Great at the leet-code style, but you can get a lot of the way there with some basic knowledge about algorithmic design and complexity and data structures. In general, I've found finishing the problem and being able to talk coherently about it trumps finding the ideal solution. (I also code like a psychopath - I'm constantly rewriting what I'm writing while I'm writing it, so a) slowing down and b) telling interviewers what I'm doing and why made that look less chaotic.) I'm also not the person you want to hire if you're looking for deep algorithmic knowledge, though - I've got a long career of delivering high impact systems and solutions, but if you want someone to rewrite the index parsing algorithm in your mature database software to minimize lookup speed, you've got the wrong guy.
- bluefirebrand 1y agoI actually just started telling interviewers that I'm happy to discuss code, problem solving, etc at a high level during an interview or walk them through problems I've solved in the past, but I won't do leetcode problems It hasn't outright disqualified me yet. I also think it's a good "is this team a good fit for me" filter
- zffr 1y agoOut of curiosity, how did you end up with 6 months off between jobs? I would love the opportunity to take ~6 months off, but I feel scared that if I just quit, it might take me a longer time to find a job again.
- roughly 1y agoI'm single, rent controlled, and was working at a FAANG-ish company. The fear was real, for sure, but it honestly made a huge, huge difference for both my mental health and my employability afterwards. I also got to spend some time figuring out what I actually wanted to be doing, so I had a much clearer picture of where my skills and interests aligned after, which helped the search as well.
- Aeolun 1y agoIt probably helps when a FAANG style salary can pay for literal months of rent every single month. I don’t want to be single again, but the absolute lack of concern over costs was nice.
- eikenberry 1y agoIt took me 8 months of active shopping to find a job w/ 25 years of experience. Unless you are really good at interviewing with an interesting resume, I'd suggest caution until the job market recovers.
- zffr 1y agoWhat do you think the bottleneck was in your search? Was it finding openings, getting interviews, or passing those interviews? In my niche I’m finding that there are very few opening in the city I live in, but that getting interviews might not be too hard. Not sure how easy it would be to pass those interviews.
- eikenberry 1y agoMost of my issues were around interviewing, I got plenty of them but somewhere in the 3+ rounds of interviewing I'd choke. I have always been nervous during interviews and had previously got most of my positions through my network, but none of their companies were hiring. Next time this happens I'm going to try an interview tutor to see if that helps and probably take some Xanax or something to help settle my nerves.
- hinkley 1y agoI ended up migrating to fixing things in the libraries I use because they piss me off. Bad onboarding docs, broken or bent SDLC, major performance issues. I spent all day yesterday fixing perf issues in a library that competes with one I loathe for trying to complect an entire problem domain. You probably have the same thing I do. Teamwork is a very different motivation than working on something either never intended for others or with a long MVP cycle that makes it too easy to get bogged down with side quests. "It would be way less tedious to deal with X if I did Y first. But now Y is blocked so I do nothing." Versus 'someone is waiting for this.'
- alok-g 1y agoI am in such a phase as I write this. What should have been a week-long project has already gone through three and not finished. This is a simple multi-platform app I am building in Flutter. One challenge I face is to be able to build something useful within a week. In two projects, I could make wirhin two days each. For the Flutter one mentioned above, it took me two-three days just to get the tooling/SDKs to work and get me to a hello-world program working on Windows. Then it took about a week to program with all features I needed. And then, damned again -- Took me a couple days to get it to build APK (random errors; the issue in the build tooling is still open). And then a week of craziness to sort out Android permissions. I still have the latter unresolved.