DEV Community

[Comment from a deleted post]
Collapse
 
jballanc profile image
Joshua Ballanco • Edited

I Agree with this sentiment completely. Since you've already started with Python, you may as well continue with it and work on increasingly challenging problems. Can you build a CMS (Content Management System) web app? Great! Now try building an API driven SPA (Single-Page App). After you can do that, try building something real-time, like a Web-Sockets driven chat app. Once you can do chat with web-sockets, try doing it with ZeroMQ instead. How about bare TCP Sockets?

Python is a general-purpose enough language that you can take advantage of it to explore the "full stack" of technologies that make modern computers run. Then, once you've spent some time on that deep dive, branch out but don't focus on specific languages. Rather, try and cover as many different programming paradigms as you can. As a quick list, you should probably at least try:

  • Statically-typed Class-based Obeject-Oriented Programming (e.g. Java, C++, C#, Swift, Kotlin)
  • Dynamically-typed Class-based OOP (e.g. Ruby, Python, Smalltalk)
  • Prototype-based OOP (e.g. JavaScript, Lua, Self, Io)
  • Statically-typed Functional Programming (e.g. OCaml, Haskell, F#)
  • Dynamically-typed FP (e.g. LISP, Scheme, Clojure, Julia)
  • Declarative/Logic Programming (e.g. Prolog)
  • Stack-based Programming (e.g. Forth)

If you can master that list, then there's not a programming job in the world you couldn't apply for. Finally...

Conversely, if you discover you like FORTRAN, Assembly, ADA, or some other strange "ancient" language like that, by all means embrace it!

COBOL was a horrible language that nobody liked using, but everyone did because "Corporate America™" said they should. As soon as there were alternatives, most programmers abandoned COBOL completely. You know who didn't? All the banks and Wall street firms whose day-to-day operations depended on systems written in COBOL! As a consequence, some of the highest-paid programming positions today are for experienced, competent COBOL programmers who can maintain and update all those critical systems developed decades ago.

All that's to say, if you chase the "next big language", you'll be chasing it your entire life. If you hone you core skills as a developer, you'll never be out of work.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

Great additional thoughts, Joshua! Also, nice list.

Only one word of caution I should have mentioned earlier: be careful not to become overly dependent on standard libraries to do all the heavy lifting for you. This is a trap one can easily fall into, especially with "let us do it all for you" languages like Java, C#, and Javascript. While there's nothing wrong with using a standard library implementation of, say, a linked list, you should also learn how to build one yourself.

In short, aim to have at least a basic understanding of any "abstraction" you use. You don't have to learn this all at once, but plan to make time to learn it sooner rather than later.