New Language Guidelines

My guidelines and expectations for learning new programming languages.

You would have thought that a global pandemic would have been the ideal time during which to expand my professional toolset, but no. Instead, I was lazy and complacent and did little else other than get soft and fat. I am already working on the physical issues, and now, it is about time to address the mental ones.

I am setting out to evaluate several new languages, and for some languages I already partially know, some new toolsets and frameworks:

Process

I am trying to approach this scientifically - I am not only trying to pick sample projects that each language is good at, but also pick the types of projects I am likely to do. Even though each language is different, I need to have a standard way of measuring my experience with them. To that end, I have come up with an evaluation that I must be able to complete when I am “done” with each project. If I cannot complete the evaluation, I need to take on additional sample projects until I can complete it.

I will take on only one language at a time, as I think bouncing between new things is only going to serve to slow down the entire learning process.

Evaluation

For each new language/framework/technology, I must write a blog post that answers the following questions:

  • What frameworks and tools did I use in conjunction with the choice of language?
  • How did the project turn out? Was it a success? Did it work as expected? Did it fail?
  • Why did it succeed or fail? (there could be non-technical reasons here)
  • What did I like about this language/toolchain?
  • What didn’t I like?
  • What went well with this project?
  • What are some things that went poorly or not as expected?
  • What would I do differently if I was to start this project over? Would I use a different set of frameworks or tooling in the language?
  • Would I do another project with this language?
  • Overall, what did I learn that I didn’t know before?

As a learning tool, I see a lot of value in this. And for future products where the choice of tech stack is flexible, to give me the ability to recall these things.

Wrapping Up

My plan is to start within the next few weeks, first with Rust, then with Crystal.

What would you ask yourself that I am neglecting? What languages are next on your list to learn?

comments powered by Disqus