![]() You don't need to use the latest and greatest container orchestration, library, or whatever. Understanding to use the right tool for the job. I'm continously surprised at how many people will have a 3 hour meeting and just not write anything down, or never make any comments or READMEs in their projects. The ability to write things down, and finding joy in writing documentation. Configure our environment and operating system so it's less annoying.īeing efficient at using a computer also makes you annoyed at poor UIs, and as a result, better at building great apps. Learning how to operate a computer efficiently. Using an actual, proper IDE instead of text editors with plugins that have so-so language support. Back when I was faffing about with Windows programming as a teenager, this was a real game changer. This was my first DVCS, before git, and it enabled me to more easily use version control on my own independent projects and prepared me for a git workflow.Ĥ) Linux, and open source in general - for providing me with a free OS, free tools, and lots of code to examine for ideas and inspiration. ![]() When I need to explore an algorithm or rough out a prototype for how a system might work, I reach for Scheme - and even when I'm not working in Scheme or another Lisp, I bring its lessons with me.ģ) Darcs. It started with writing plugins for GIMP in its embedded Scheme in the 90s, then I moved on to Guile - but Scheme not only made programming fun, it put solving a greater class of problems within my reach, especially when I had to solve them quickly. Nothing beats an editor you modify for the task at hand live as you edit.Ģ) Scheme. Still the king of text editors, with even the latest challengers (e.g., Visual Studio Code) proving unworthy. POSIX shell scripting and core utils: write once run anywhere.ġ) Emacs. Even sqlite and redis started as tcl scripts! Apart from quick-n-dirty, it's also used for stable tools such as expects, gitk and environment modules. The "every thing is a string" principle makes it extremely flexible. Bundled with the native tk library, its my goto language for quick-n-dirty GUI tools and prototypes. Tcl: Easy to learn, hard to master and powerful! Syntax and semantics can be explained in 12 bullet points. This was an eye opener while learning emacs: suddenly I started to understand how to efficiently navigate any shell, even remote systems, without configuration! These shells often have emacs keybindings by default. Learn basic vim and emacs keybinds: most interactive shells use readline (or similar) library. Personally prefer Emacs and use vim on occasion for remote work. Both were created decades ago and still have very active communities. IMO, Vim and Emacs are both very good options. When your editor is programmable and has an active community, you can probably find a plugin to solve your problem more effectively or write something yourself, with your editor! With all your customizations in code, you can manage your editor in the same way as you manage your products: source control! This gives you the possibility to improve your daily working environment reliably and iteratively. Having a good editor at your disposal allows you to manipulate any text oriented (and sometimes binary) format. ![]() IDEs are generally single purpose: working very good for a limited selection of languages, platforms, etc. I think a learning to use a programmable editor is a better investment than learning to work with an IDE. Solid editor: I've used a few editors and IDEs in the past. But when I moved to using Cocoa, it was so elegant and the separation of concerns was so good that it clicked and really taught me a lot about better architecture. ![]() They got the job done and were easy enough to use, but I didn't really learn anything from them. I had used MFC and CodeWarrior PowerPlant for a few years. You can see performance tanking and know the exact function that's causing it before you quit.īeyond that, for me using a framework that was well written made understanding architecture much easier. You can see memory growing, even if it's not leaking. They require (re)building and running but it's worth it.īeyond that, any sort of instrumentation that can show you in real time information about your running application. These all also find things before you ship. The various sanitizers - Address Sanitizer, Thread Sanitizer, Undefined Behavior Sanitizer. The static analyzer can catch some of them before you even run! It's great. There are so many subtle things that aren't caught by the compiler and don't cause any problems in your testing but will definitely come up once 10M users are running your app. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |