I take a break, just walk away from it and yes the duration you can walk away from it is inversely proportional to how much you are paid to solve it!
That is precisely the reason why I have learnt to work on multiple projects,3-4 at a time, so I can safely switch when things have got hard and somehow a decent duration (week or two) gives me the insight to unblock it. I know it is anecdotal but it has worked out well so far.
Like for a new programming language: Tutorial > first example project > first meaningful addition to something existing > a small valuable first project > a project where you initially are a bit out of your depth but figure it out after reading the docs and asking around
Choose the steepest slope you can manage without giving up. This means sometimes giving up a project because you misjudged the slope, but that should be the exception.
I'm currently diving in to deep learning, I'm not sure yet if I'll make it. But I got an Idea and I already found some baby-steps that will be a lot of work as a noob, but should be doable for me. My biggest challenge is the width of the topic here, ranging from data acquisition, over math, actual deep learning, deployment to a production environment, web stuff for a front-end and so on.
Lower your standards for Good Enough For Now, and improve your thing later. Building crap and improving on it later is a lot better than building nothing.
Remember the two clay pot classes, where one is graded on pounds of pots and the other on quality only? The former wins.
My advice is more general and not just related to self taught techs. What keeps me from Quitting is the alternative. That gives me nightmare. In my case, running my own company is what I want to do and it is DAMN hard. There are days when I am like "WTF am i doing" BUT what keeps me from quitting is the alternative. For me, the alternative would be to work in a corporate job where I feel empty even though I could make decent money.
So here is what you should do when you feel like quitting. Close your eyes and imagine doing the alternative. If that gives you nightmares, you know the answer. If that doesn't give you nightmares and the alternative starts making sense, it probably is time to quit. Remember it is ok to quit sometimes but you better quit in return for something worth quitting for. Keep fighting the good fight.
When you say "things got hard", what exactly do you mean? I've encountered many different difficult aspects in tech as a mostly self-taught engineer. Here are a few of the different things that were difficult for me:
- Self teaching got hard: I always reminded myself that the alternative was staying in the same place, which was much less than ideal. My day job was enough to motivate me to get out of there, and tech represented a way to move up. Usually taking a short break or walk (diffuse mode) would also do the trick.
- Finding a job got hard: luckily this was hard from the beginning, so I was able to have a lot of practice from the start. I got so many rejections that I got acclimated to it. Once I had my first real professional development experience, things got easier.
- Impostor syndrome made life hard: post-first-dev-job, I was worried about my lack of CS foundation and ability to move forward in career. I ended up taking some classes at a local college, which was absolutely fantastic. I also ended up later getting a job at a large tech company, which has been both good and bad for my impostor-ly feelings.
- Programming problems got hard: compared to the other ones, this was the easiest. I usually took a break from the computer to draw out the problem, rubber duck debug, take a break/walk (again, diffuse mode), or ask someone for help. When the programming problems were when I was self teaching, I'd go the discussion boards and ask questions. At any job, I'd talk about and work through the problem with a coworker.
I like hard things. Most of what I do is going "the hard way" so it's just natural for me to push through. For example, I taught myself to code using only the internet as a resource at night after work before changing careers to do it full time. People told me getting a tattoo on the ribs was one of the mores painful spots, so that's where I went first.
I guess I get the thrill out of pushing myself and succeeding -- or learning from my failures.
A year long existential crisis where I nearly dropped out of college (where I went, you needed to learn everything yourself, the professors wouldn't help, I dont reccomend it). Then I came upon a poem at just the right time called Curiosity, by Alistair Reid, and I followed that up with a rereading of asimov's the last answer
11 comments
[ 3.2 ms ] story [ 30.8 ms ] threadThat is precisely the reason why I have learnt to work on multiple projects,3-4 at a time, so I can safely switch when things have got hard and somehow a decent duration (week or two) gives me the insight to unblock it. I know it is anecdotal but it has worked out well so far.
Like for a new programming language: Tutorial > first example project > first meaningful addition to something existing > a small valuable first project > a project where you initially are a bit out of your depth but figure it out after reading the docs and asking around
Choose the steepest slope you can manage without giving up. This means sometimes giving up a project because you misjudged the slope, but that should be the exception.
I'm currently diving in to deep learning, I'm not sure yet if I'll make it. But I got an Idea and I already found some baby-steps that will be a lot of work as a noob, but should be doable for me. My biggest challenge is the width of the topic here, ranging from data acquisition, over math, actual deep learning, deployment to a production environment, web stuff for a front-end and so on.
Remember the two clay pot classes, where one is graded on pounds of pots and the other on quality only? The former wins.
So here is what you should do when you feel like quitting. Close your eyes and imagine doing the alternative. If that gives you nightmares, you know the answer. If that doesn't give you nightmares and the alternative starts making sense, it probably is time to quit. Remember it is ok to quit sometimes but you better quit in return for something worth quitting for. Keep fighting the good fight.
- Self teaching got hard: I always reminded myself that the alternative was staying in the same place, which was much less than ideal. My day job was enough to motivate me to get out of there, and tech represented a way to move up. Usually taking a short break or walk (diffuse mode) would also do the trick.
- Finding a job got hard: luckily this was hard from the beginning, so I was able to have a lot of practice from the start. I got so many rejections that I got acclimated to it. Once I had my first real professional development experience, things got easier.
- Impostor syndrome made life hard: post-first-dev-job, I was worried about my lack of CS foundation and ability to move forward in career. I ended up taking some classes at a local college, which was absolutely fantastic. I also ended up later getting a job at a large tech company, which has been both good and bad for my impostor-ly feelings.
- Programming problems got hard: compared to the other ones, this was the easiest. I usually took a break from the computer to draw out the problem, rubber duck debug, take a break/walk (again, diffuse mode), or ask someone for help. When the programming problems were when I was self teaching, I'd go the discussion boards and ask questions. At any job, I'd talk about and work through the problem with a coworker.
I guess I get the thrill out of pushing myself and succeeding -- or learning from my failures.