Code reviews, agile “stand up” meetings, sacrificing one of quality or features — all that kills interest, for me. Don’t do those.
I sometimes go months without a fun project. Fortunately, I have one while in quarantine.
191–200 of 337 posts
Code reviews, agile “stand up” meetings, sacrificing one of quality or features — all that kills interest, for me. Don’t do those.
I sometimes go months without a fun project. Fortunately, I have one while in quarantine.
But maybe let me add some random points:
- I do side projects from time to time. All of the open source on GitHub. Either in some new programming language which I want to learn about and just try out, or some preferred well-known programming language but a new fun (maybe challenging) task. Or maybe not challenging but actually easy but still fun, e.g. like writing a small game. There are many possible variations and options for side projects, and each case can be rewarding. As you start from scratch, you can try out whatever you want. If you set the scope small enough, you can soon get some nice results. Maybe really the most fun side project is to write some small game. Side projects is also one of the best ways to widen your scope to new areas. Maybe also the only option. In some cases (but this should not be the focus), you can integrate the side project back into your day-to-day work.
- Maybe the project you currently work is too big, buggy, unorganized, and annoying to work with. Take a step back and think about ways how to solve some of the annoyances. Maybe some subsystem can be rewritten. Maybe the startup time is too long and this can be solved somehow. Invest some work in making your workflow easier. Turnaround time for development is important. Maybe you can develop a testing environment where the turnaround time of development and testing can be much faster. There are many options here. Many of the will require some initial work but this can be greatly rewarding. In general, for me the most annoying thing is when something is slow. When I need to wait too long until I see the result of sth I just tried out. It could also help to get some better hardware.
- Other hobbies despite programming can be important too. Probably most relevant is some sort of sport, or any activity for the body. Hiking in the nature can be nice too. Take frequent off-times. Make this regularly such that it becomes a routine. E.g. I have a couple of sport courses, some in the mid of the day (so this is my extended lunch break), some in the evening. They force me to stop the work I'm doing right now. This is often a good thing because it forces you to take a step back and rethink about what you are working on right now, if you really tackle it from the right angle, or if you maybe should shift your priorities on other things. And also this gives you time in developing some new ideas, maybe about your work, or also new fun side projects, or new other unrelated hobbies.
- Socialize. Talk with other people. If you live alone, maybe change that. Talking can also be technical. I enjoy it, to get some new input, or talk about some new technical thing I read about, or maybe also something I don't know too much about. Talking can also be non-technical, about random stuff, about your hobbies, etc. If you are in a group with other shy people, just talk whatever is in your mind right now, even if the other people might not have a solution. Just talking about your programming problem, or whatever, helps.
Earlier quoted context omitted.
That's not unique to JS. $ irb irb(main):001:0> 0.1 + 0.2 => 0.30000000000000004 irb(main):002:0> $ iex Erlang/OTP 22 [erts-10.6.2] [source] [64-bit] [smp:16:16] [ds:16:16:10] [async-threads:1] [hipe] Interactive Elixir (1.10.2) - press Ctrl+C to exit (type h() ENTER for help) iex(1)> 0.1 + 0.2 0.30000000000000004 iex(2)> $ python Python 2.7.17 (default, Dec 2 2019, 13:23:33) [GCC 4.2.1 Compatible Apple LLVM 11.0.0 (…
Interestingly, though, some languages get it right: northrup@Topaz:~/Desktop$ perl -de1 Loading DB routines from perl5db.pl version 1.55 Editor support available. Enter h or 'h h' for help, or 'man perldebug' for more help. main::(-e:1): 1 DB say 0.1 + 0.2 0.3 […] northrup@Topaz:~$ csi CHICKEN (c) 2008-2019, The CHICKEN Team (c) 2000-2007, Felix L. Winkelmann Version 5.1.0 (rev 8e62f718) linux-unix-gnu-x86-64 [ 64bit…
DB say((0.1+0.2) != 0.3)
1also try teaching children.
Effectively programming is like writing or maths - as such it is intrinsically not that interesting to most people, but what you can do with it is.
I.e. most people find books more exciting than grammar, and specific application of math more interesting than just doing calculus disconnected from any practical problem.
While getting started with programming is more difficult than acquiring basic literacy, once you have it, it's not that big of a deal and to grow you need to move onwards (i.e. apply it to real problems or continue studying the theory).
Once you've mastered a certain level of basics, just learning a new language or API is quite pointless unless there is some value proposition tied to it.
There is a lot of good advice here, but some things will just never return. That is life. Read the Bible.
Feynman described his run-in with burnout, you may find his experience interesting. I quoted a piece below, but the book is more persuasive with more intricacies of his situation. Then I had another thought: Physics disgusts me a little bit now, but I used to enjoy doing physics. Why did I enjoy it? I used to play with it. [...] So I got this new attitude. Now that I am burned out and I’ll never accomplish anything,…
Time you enjoy wasting is not wasted. I often need to remind myself of that.
Open source work.
I was a manager for over 25 years. I'm a really good manager. I could probably be an ideal CTO.
But I don't love it. I love writing code.
As my management track progressed, I found my technical work deprecating. It did teach me to be a lot more "strategic," and "architectural" in my approach, but I found that I was sitting down and banging out code less and less.
To make things worse, I kept reading about how the tools and techniques were progressing to levels far beyond what I had learned.
I didn't have a "shower clause" in my employment contract (where the employer insists that they own the ideas that you come up with in the shower before work), so I was free to write software in an extracurricular manner, as long as I didn't use employer time and/or resources to do so.
So I started to do open source. In the beginning (about 25 years ago), there wasn't a good infrastructure for shared configuration management, so most of the work I did was published "after the fact" (otherwise known as "deliverable"). I would make the source available, "on the side."
Nowadays, with things like GitHub, GitLab and BitBucket, you can actually run a distributed collaborative open-source (or closed-source) project, with the process open. It also works great for single-engineer projects.
The result, these days, is that I have a GIGANTIC portfolio. Hundreds of thousands of lines of crafted, artisanal, small-batch, single-source code, in dozens of repos. I like to use the MIT license for my work.
I tend to design architectures; not apps, and some of the designs I've done have lasted decades (although with many changes along the way).
I found a need in an underserved community, and designed an ecosystem to help them meet their needs. For free. It's now becoming the global standard (but for a small demographic).
If you can find a need that usually can't afford your level of skill, you can find a home. It can be quite challenging, but that which does not kill us makes us stronger. It taught me to plan for the future, and for limited resource pools and budgets. It taught me to support my work, and do work that can be supported and passed on to others.
Ironically, my open-source tech work informed my "day job," as well.
Open source work.
In the movie "The Graduate," the equivalent of the "OK Boomer" (in those days), lectures a young Dustin Hoffman with "One word: 'Plastics.'"
https://www.youtube.com/watch?v=PSxihhBzCjk
So this "OK Boomer" says "Open Source." It worked for me.
I've spent the last couple of years "reinventing" myself to be a line programmer again.
It makes me happy.
Earlier quoted context omitted.
Can you recommend some prolog learning resources? I googled a lot but it's still kinda hard for me to grok - especially CLP.
I recommend starting with [0] to get a feel for what's possible. [1] is great when you have time to dive deeper. [2] is good motivation, and [3] will show you how to build a practical roles & permissions system. Keep in mind that you don't have to build your app in 100% prolog to use prolog. There are likely implementations in your favorite language. For example, Rust[a] JavaScript[b], and Ruby[c]. [0] https://learnx…