Thanks for posting Gene. I wonder if you may be suffering from a little survivorship bias. What you see when you wander around the development community is those projects or repos that have been completed, published, blogged about, and referenced. You never see the projects that were never finished, didn't work out, or that the author didn't take the leap of faith to make public.
Remember, there's value in practicing. There is value in not completing something because you've learned what you needed to learn from the work up to that point. If you create something that is useful or can help others or you are proud of, great! Make it public and share what you did. If you start something, make of mess of it, and learn something from it, good or bad, that's great also! It doesn't have to be complete, perfect, unique, useful, or interesting to be of value to you.
Hi Brian! It's the first time I heard about "survivorship bias" and it is exactly on point--just like what you said in your comments. I was too blind to see the mess/struggle behind every project that made me feel those frustrations. I didn't realize those until now. It's a good thing to know. Thank you very much for adding to my answers. I appreciate it a lot!
I felt this way about a specific project I ended up abandoning. But I really did learn a lot from all of the work I did. Even though the project will never be "finished", the learning part was both fun and valuable in the end.
Wow just knew it today. I think i'm having the same problem. Thanks a lot for mentioning that 'survivorship bias'. Really appreciate it.
I feel like you put a word to a feeling that I've had but didn't know there was a term for it. I've heard of survivor's guilt, but not bias. Through doing something new and difficult I'm always recognizing how I deal with it though, and the apparent fruitlessness of it to other people always seems to worsen the feeling, but I am sure of how satisfying it is to me at the end...
You are not alone. I was seriously considering dropping out of this profession because "I can never be like those people who program outside of their work hours, contribute to open source, attend conferences, and write articles".
I stayed in the field because I needed to earn a living. And because it is not easy to change to something else when you don't have a luxury of free time.
I would not mind to earn a living developing my own project though.
I totally feel the same. Unfortunately sometimes it feels like you have to have side projects going or have your own technical blog to be able to succeed in this profession. It is very frustrating sometimes, but when I look around, it's the same across all other fields. The extra time you put in builds up your skills and makes you standout in the long term. But I really do feel this kind of frustration a lot of times.
While I agree that you have to spend time doing side projects or technical blogs to learn and succeed, I also believe sometimes it's the opposite. There are just things that you cannot learn inside an enclosed space unless the other developers you're with also have very good experiences that they are willing to share. It's somewhat related to "Our ability to learn is unique". But yes, the things you learn in your office/job--can be nothing compared to what you can learn when you do your stuff--hacking a new framework, etc.
How were you able to cope up, Chastina?
I totally agree with you. Doing side projects and tech blogs are not the only ways to learn. Attending conferences, talking to other developers, and even giving talks are also great ways to learn. I personally just find that coding projects on my own forces me to understand concepts and details that I always ignore under other circumstances. But I'm just talking about myself, everybody have there own ways to learn. Although the one thing that's universally true is that you have to put time and effort into it. I'm struggling to cope up because my time and focus is limited these days, I'm trying to fix that.
"I can never be like those people who program outside of their work hours, contribute to open source, attend conferences, and write articles".--I can pretty much relate on this one as well. And yes, much of what we do here is to earn a living. Exactly as I have said. Thank you for sharing--If I may ask, how did you able to cope up? or are you still in the process of coping up?
I don't know if it is "coping" but I started my own ambitious project that I wanted to make even if I need to do programming. Pretty much all I do these days and months is coding. I like it and I hate it. On one hand, I find it enjoyable to see my skills growing fast because of the challenges and high motivation. On the other hand, I hope the days will come when I won't need to code more than 20 hours a week (or at all, but that's not going to happen).
And, to be clear, I probably wouldn't start or continue if I didn't have hopes for the project to become profitable one day and let me quit my day job.
The effective way of dealing with such frustrations for me is to open source my code on the go. I mean, I'm not going to put my enterprise project on GitHub. First of all it does not belong to me, the second: no one needs it to be open sourced. But I solve small problems here and there on the daily basis. Most of that problems could be solved by npm install problem-solver. If there is no package for solving my problem yet I create it and publish on NPM. It is the all-win scenario. You help others, others help you by using your packages and reporting issues, and, quite important, you learn how to decouple code and isolate logical pieces. In other words: by creating and publishing reusable packages you better understand how to create reusable code.
npm install problem-solver
I get very frustrated when I go to GitHub and start looking at other popular projects, and inspecting the code. I can under stand the code no problem, but when it comes to writing it, I know I could never compete (or at least, I feel).
But, I have realized, the key is to understand the entire flow of the program.
It's nice to see this post, knowing I'm not alone on getting frustrated by this sorta thing
I feel the same. Even the documentation can wow me a lot. It's really nice to know I am not alone here. :) One of the reasons I posted this is also to gather more answers.
15+ years of doing development has confirmed, for me at least, that I know less and less every day.
The more I know, the less I know.
It's both exciting and demoralizing at the same time.
Great post. Keep your chin up. You're not alone and you can still do great and valuable work.
Compare yourself to who you were yesterday, not who someone is today. :) I stole that from Jordan Peterson.
Thanks Spiro! Wow! I only have 5 years and yet here I am already talking about these frustrations--I guess I'm not one to say.
I love the quote! In fact, it's somewhat related to the same quote I have been motivated by for the past couple of years already. It's "Are the Habits you have today on par with the Dreams you have for Tomorrow?" From the famous Stephen Curry. :)
I think it doesn't have to be just 'frustrations', these 5 points can be taken as negative or positive depending on how someone looks at it. For instance, "Our ability to learn is unique" I think that is quite the point to make an advantage and also programming to earn a living is a positive thing, I don't imagine myself doing it in any other case (unless I'm building something that will give some profit later on).
Wow! I haven't viewed it in that position. It's nice to see there are other ways to view it. It leads to more realizations.
Can you tell me more about the part where you said "...I think that is quite the point to make an advantage"?
Thank you :)
Ive experienced these frustrations before for sure. I felt that everybody was learning or doing something with the fad language/framework of the day and why wasn't I?!?
The answer was, because I don't want to and didn't care enough. I dont really like using JS frameworks. THERE I SAID IT!!! I find the language irritating and feel like there is very little consistency across frameworks and the like. Typescript is a bit better because I come from C# background originally, but still I don't like it!
In time, I stopped worrying so much about GitHub commits, and more about getting good at what I like doing. Sooner or later, you'll get really good at one particular thing and people will find you. Just keep at it!!
Language preference can give a big impact on how you decide if you will work on new things. It’s a good thing I get passed this situation in my career.
Glad you did as well :)
I definitely can relate to that. I recently had to attend an Machine Learning training conducted by Microsoft, which I was too reluctant to attend. Because, for one I didn't know much about it and next, being around other devs who would come there. But, I was able to get through those 3 days and did some learning as well.
Dev is something that I like, which I do even after work many times. But, I am not great either and that's ok. As long as we like what we do, we can get better at it, even when it takes time.
Developers, like artists or sportspeople, or really just people in general, are all different and do things differently.
So comparing yourself to others is like comparing a pair of shoes to a pair of pants.
Compare yourself to who you where yesterday.
Thanks for this post Gene.
You're welcome! :) Happy to contribute.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.