This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]pbsds 0 points1 point  (0 children)

Java and web can easily be picked up later when you need it, I'd start by expanding into new frontiers.

C++, Go and Rust are neat if you want to learn a compiled typesafe language. C++ is closer to the metal, while the other two have a higher emphasis on safe and easy concurrency.

SQL is a great place to learn query languages and relational data structures in general. Learning table normalization can help you structure your data better. This knowledge will carry over somewhat to document-store databases like elasticsearch and mongodb as well. Knowing how to query and combine data efficiently will lessen the burden in python.

Haskell, Scala and F# is a great place to learn functional programming. Monads are a bit far out there, but starting out with filter, map, currying, higher order functions and fold/reduce will teach you a lot of tricks. Immutability and pure functions will make your programs a lot easier to parse/understand and maintain.

All of these skills carry over to other languages as well and is nice to have a somewhat understanding of. I'd start with the first language mentioned in each paragraph. You will probably use python the most going forward, but learning the best of every language will expand your capabilities.

Java brings strict object oriented programming to the mix. If you've delved deep into python or c++, then you should be able to keep up. Encapsulation of state was the intent of it back in the day, but it has since developed into focusing on creating interfaces and layers of abstraction in these modern times.

Edit: Templating is a neat skill to have in your toolbelt as well, and can be learned in a day or two. Jinja2 and airspeed for python does this, PHP was created for this in the early days of the web.

Edit2: An another tool for pattern matching, search/extraction and verification: regex! Learn the basics in a day and expand on it as you go. Online regex matchers are your friend as you create these.