In Cal Newport’s book, So Good They Can’t Ignore You, he argues that it doesn’t really matter what you choose to focus on so long as you actually focus and make it your thing. If you do, the rewards will follow, not from passion or personal attributes, but rather from just having worked hard enough to be good.
As somebody who does not feel that this is a natural fit for me, I’m wondering are there any people out there who have just concentrated their focus long enough to make webev/coding their thing? How has it worked out?
remember also that there are a few reasons for which he says you can leave it and find something else - for example if spending a lot of time in front of a computer is against your values, or make it impossible to dedicate time to your values, then programming may not be the thing worth pursuing
Programming is hard. I often say that developers are people who are paid to be frustrated. For many of us it is rewarding and we thrive with that sort of challenge and pressure. Some people hate it and are miserable.
You don’t have to love it or feel like it comes naturally to you in order to feel like it’s rewarding, but don’t do it if you hate it.
That’s kind of what I’m getting at. Can you do it and get to a place where it is rewarding with the right focus? I guess what I should take from your comments is that you need the enjoy a lifestyle of frustration and enjoy the rewards of dealing with those frustrations if this is going to work for you. I guess you answered my question really. Thanks.
As you’re learning, you’ll often get frustrated and bang your head against a problem for a while before you solve it. Although what problem is causing this frustration changes, that experience is very much just what programming is. It’s solving hard problems, often that have not been solved before. For many of us, finally figuring it out and solving the problem is extremely rewarding. If you keep learning to program and you don’t find it rewarding, I don’t know how you would change your feelings. If you legitimately hate learning to program, you’re going to hate programming.
That’s a great answer. Really helpful. Essentially if you don’t enjoy the intrinsic rewards of what you’re doing now as a student, the extrinsic rewards may not make up for that…and you probably won’t make for a great programmer if you don’t enjoy that process, and therefore, probably not accrue many extrinsic rewards anyway.
Just my two cents, but I don’t know frustration when it comes to programming, I only know challenge. After a while, you’ll have mastered so many challenges that you won’t even be scared of the challenge anymore, you’ll be like “I totally got this (just give it some time)”.
But this comes from someone who loved every single aspect of coding from the start.
I’m a PhD candidate whose research heavily involves coding and who has loved coding from the start - I still get frustrated at some coding problems regularly. It is part of the process and perfectly normal. It is totally OK to get frustrated, and its also totally OK if you decide that programming is not a natural thing for you.
I really love fighting with a mental puzzle, so programming is totally for me. But your mileage may vary. Follow your heart (as much as life lets you), because life is too short not to.
I agree, but that doesn’t mean you should follow it. The key thing to point out is rewards will follow, but that doesn’t mean you’ll like what your doing. On the flip-side you could do what you love and never get “rewards” for it.
I think it should be said that you don’t need to love programming to be a programmer. You could just make it your day job that you go do, do a good job and go home after and not look at a single coding thing until the next day. You could also make it your entire life and code all the time. Its your choice of what you can/want to do, that doesn’t mean you have to actually pick one of these scenarios to “be a programmer/coder”.
Like any job, you could do it, get paid well, and still hate it. Does that mean you shouldn’t do it? It depends more on you and your own goals. Maybe your actually really good at it, but still hate it? Maybe you not actually that good, but don’t hate it that much? Maybe you just want a job with high job security, regardless of if you like it that much or not?
Regardless, this is one of those things that is very much on an individual basis. It is undeniable that learning to code isn’t easy, its finicky, annoying, filled with challenges, requires focus and time. Does that mean you mustlove that all stuff to be a coder? Hell no, you could find the “drive” from needing to pay bills, or because you hate your original career/job more.
When it comes to doing something hard, such as learning how to code, you need to find some kind of drive to get you through it. You could just love the challenge of doing something hard for the sake of it being hard, or you take it up because you have to/need to due to circumstance. It doesn’t matter only that you do have a drive for it. Having a source of drive wont make it any easier, or make it a smooth nice and “fun” process, it just means all the issues you face are less likely to stop you because you have a drive to see things through.
You can be a great programmer if you have the drive to be one. That drive can be anything from anywhere. You also don’t have to aim to be great, maybe you just need a better job/career, and in that sense do what you need to do to get where you want, just don’t think you must be great. Just be the best you and do what you need to do to achieve your own goals. That could be a programmer, or anything.
Cal Newport’s podcast is actually the only one I listen to.
That’s because he seems to be one of the only podcasters who focuses on concepts, not just on implementation details.
The book talks about the passion trap.
Most people grow up learning that there is this magic, hidden thing that brings you joy all the time. This is not intentionally, more in a “hey, if this is not fun, you don’t have to do it!”-fashion.
When we look at the correlations, we see high ones between skill and passion. But we don’t see the causation. Does high passion leads to high skill? Does high skill leads to high passion? Are there actually causations? Is there some hidden third party?
So we oftentimes search for things that feel good. Playing games feels good. It involves actions that are pleasurable, e.g. novelty, winning etc. But ask pro how fun exercising for 40-60h per week is. Doing the same boring stuff all over again to get excellent at it. There is no novelty, no winning - all the stuff that is pleasurable.
Another question is “Why does coding feel so hard?”. I think it has a lot to do with our environment. Most people don’t train the skills that are required to get good at coding in their everyday life. Logical thinking, focusing, overcoming frustration - this is stuff we normally don’t train in most studies or jobs. So they think that they are not born for this. But actually I think they didn’t train enough. An office environment is not a place to focus. You get distracted all the time.
In my teens, I played chess, this was literally: reading books for hours, thinking about every move for minutes. That’s why I’m good at focused reading. But even I recognize my decreased skills, because there’s distraction everywhere. Breaking my focus is literally one click away. That’s why I read with pen & paper most of the time nowadays.
Doing things we’re not use to is called learning. The more you learn, the more opportunities you can exploit. If you know nothing, then nothing will come naturally.
Dismissing something because it doesnt come naturally is another way of saying “I don’t think this is worth the extra effort”, which is perfectly fine. Though, if a person is to grow, even in the ways that me naturally, he needs to explore things that are unfamiliar. And in exchange for your suffering and confusion, you gain wisdom.
Thanks for you response. You really get what I’m wondering about even though it doesn’t seem to have been a problem for you with your chess training. Every answer seems to either directly say or allude to feeling the discomfort and doing it anyway (if that’s what you want), and @ArielLeslie gave the very good advice that dealing with frustration and discomfort is the job.
What I’m really wondering if there is somebody out there who can say “I felt the discomfort, I didn’t think I could do it, I didn’t think I had the right attributes, but I ignored those voices and kept going anyway, and boy am I glad I did because it was all worth it…and, I’m actually ok/good/quite good/very good/great at this, which I wasn’t really expecting, and sometimes I even feel flow.”
I have had many points in my education and career where I really thought that I just couldn’t pull this off. Everyone around me sometimes seems to take to it like a duck to water and I’ll never make it look as effortless as they do. I started adulthood with a literature degree and a talent for bricking hardware. I still have a talent for bricking hardware, but I’m also somehow a mid/senior developer and I spend my free time talking about coding with you lovely nerds.
This does NOT have to feel like some calling from on high. It’s totally fine to do it because you gotta pay the bills and this seems like the best option available.
To add to what’s already been said above, I would say this: a baseline requirement for either liking or being good at coding is a genuine interest or aptitude in solving “brainteasers”, or “puzzles” to use the most generic word possible. If you don’t like brainteasers in general, it’s very unlikely that you’ll develop interest or skill in coding (whether on the front-end or back-end). A lot of what’s required in coding very often involves finding the solution to a problem, and it can be a slow, intensive, and extensive process. If you don’t have the patience and fortitude to mentally put up with that, it’s probably better to get out the sooner you can.
I consider sitting in front of a computer all day as a secondary concern, especially since there are other types of “white collar” jobs that also involve sitting in front of a computer all day. But I believe that coding is probably one of the most mentally draining and exhausting tasks that exists, and it’s certainly not for everyone. On the other hand, if you love brainteasers and the challenge of a mental exercise, coding is definitely for you. But even if you don’t, there are definitely other related career possibilities you might like, such as web design, devops, QA/testing, site reliability engineering, or even developer advocates, which is a type of role that’s only started to emerge recently. You certainly don’t need as much, if any, coding skill with these other types of positions.
The difference is in the reaction to the feelings. I think childhood is a place where it is very easy to learn this skill.
But also as adults we can learn it. I think it boils down to your current situation (do you have a nice, comfortable life or are you caught in a soul-wrecking job and are broke) and your life values.
I’m doing a lot of mentoring and workshops, I think #1 why people don’t become developers is giving up. They can’t handle the feeling of frustration while thinking, so they quit. And “I’m not made for this.” is actually an easy way to quit. That’s it.
I have a mentee who is mentally handicapped. They probably won’t get a job at Google, but I think they will get a job as a freelancer. They need more time to understand stuff, but that’s okay. Their alternative would be to work in a non-profit organization as a mechanical turk to screw pencils for $1/h.