• 2 Posts
  • 118 Comments
Joined 1 year ago
cake
Cake day: June 28th, 2023

help-circle
  • Programming has very low hardware requirements, much lower than web browsing. Just don’t get sucket into the whole maelstrom of people trying to convince you that you need a bunch of complicated tools. If you are just stating out, Gedit or equivalent will work out just fine.

    In terms of operating systems, if given the choice professionals tend to congregate around Linux and MacOS as the development experience historicaly has been much better due to having access to a proper terminal. This is something you want to familiarize yourself with if you haven’t already. Other factors may apply, especially in professional environments, where clients / employers mandate the use of Windows or something else, but this probably does not apply to you.

    Universities usually have their curriculum, which is rather narrow in the beginning and widens in later terms, especially in masters classes. When it comes to teaching fundamentals, language and tools really does not matter much. It’s more about keeping things manageable for the teacher.


  • It’s a very good lesson- to the point where I wouldn’t be surprised if the teacher is deliberately putting an arbitrary restriction on the assignment.

    It’s not arbitrary. When you start out on a profession, the first thing a good instructor does is make you unlearn the things you already think you know before teaching you the things you need to know. Think of it this way: When you pick up a golf club and start hitting the ball, you’ll drive it left and right. First thing you’ll be taught is to only hit straight. Even if you think you should try to drive a curve ball, a good teacher will not allow you. Only when you have mastered the basics will he teach you to drive curved balls. So ignore your teachers advice at your own peril, but it will most likely set you up for an expert beginners career.

    As a closer, I can tell you this much: I received the same advice almost 20 years ago and now, after being a professional developer for two decades, I can not recall more than five times when a break statement actually made more sense than to rethink the algorithm.




  • This. Unless you generator guarantuees reproducible code generation and your build environment does the same across developer machines and CI, you are opening yourself up for “works on my machine but fails on CI” issues that are hard to debug. Since most developers don’t pay attention to these things (they really should), I would always advise to check generated code into version control.





  • Wrong. Yes, typing speed does not matter when counting up lines of code. Code programmers however are not just code monkeys. They write documentation and comments, communicate with peers and potentially users, take notes on their own thoght processes when pondering on the best solutions for hard problems, etc. On all of these point and many more, typing speed matters. People who can type and type fast(-ish) communicate more expressively, document more comprehensively, make less mistakes when spelling, etc.

    So yes, typing skill matters.




  • I don’t have a problem with people paying for the tools they use. I also “pay” for Neovim in the senst that I donate regularly to the project. My grievance is with the way Jetbrains markets Kotlin as “Open Source” with an “Open Community” when in reality they are blocking access to anyone trying to make it work more smoothly with tools that are not Jetbrains endorsed. That, in my opinion, is openwashing as we have seen for decades from companies trying to act in bad faith, like Microsoft or VMWare.


  • I would disagree, or rather: it depends. You can print the --help of bash, but will that actually tell you anything about bash except a really superficial subset of flags? In the same way that the author argues that the help of his tool is too long to be useful, the help of bash is to short for the same reason. He argues that “cloud tools have a gazillion options where UNIX tools have good defaults”. Bash has a gazillion options and no good defaults. As a matter of fact, bash on defaults is fairly dangerous. Yet, it is at the heart of most Unix systems today I’d argue.



  • It’s actually pretty distinct. DevOps refers to the mindset (or philosophy, if you will) of “you build it, you run it”. It boils down to you as a software developer are also responsible for packaging up you masterpiece, pushing it through CI, getting it deployed and making sure it keeps on running smoothly. It is designed to shift responsibilities away from the sysadmin to the developer.

    The problem with this is that it’s not a role or a job title, so recruiters and HR does not know how to work with it. Hence, they invented the DevOps “Role” because it sounds more modern. So in reality its used as a marketing term most of the time. So when someone pitches you a DevOps jobs, this tells you a few things:

    • they don’t know what they are talking about
    • the company behind the offer puts a lot of meaning into titles, which means things will likely be pretty hierarchical even though they claim it won’t be
    • they’ll likely try to pay you less that your worth


  • Kotlin has a major benefactor in Jetbrains, buy they are also a major gate keeper with no interest in adding support for anything but IntelliJ. Quite to the contrary, they are actively blocking extensions to their compiler API that would improve development of open language servers.

    If you want to develop in Kotlin, you should really just stick with IntelliJ. Or make your peace with not having the greatest language support in your editor.

    Honestly, because of the whole situation, I’ve started considering Kotlin as a proprietary product by now.


  • You are not a dinosaur.

    Look at it this way: while everyone else is busy erasing their muscle memory in favor of the next shiny thing every couple of years, you can spend that time improving on what you already know. Its actually giving you an edge.

    It’s actually kind of funny. Developers using Vim (or Emacs, Neovim, etc.) are often perceived as archaic, yet very profitiert and the assumtion is that being a very proficient programmer let’s them get away with using archaic tools. In actuality, I’d argue its the other way around. The fact that we dedicate time to mastering the tools of our trade leaves us with more capacity to actually become that proficient.



  • Competence in programming and the editor / IDE you use do not correlate. Competence in programming comes from writing code. Competence in using your tooling comes from investing into mastering your tooling. The question you want to answer for yourself is: does the tool that I’m using help me to get the job done or does it get in your way on a regular basis. If it’s the former, great, just stick with what you are doing. If it’s the later, change the things that stop you from being more productive.

    The only thing to avoid in my opinion would be constantly jumping on the “latest and greatest” band wagon, as that will keep you stuck a the expert beginner level forever.