Choosing what programming languages & frameworks to learn
-
Perhaps something for a survey... With so many options how do you choose what languages and frameworks you learn? Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use? Do you learn something new because it's popular / in demand in the job market? For personal projects... maybe just because it looks cool or useful?
-
Perhaps something for a survey... With so many options how do you choose what languages and frameworks you learn? Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use? Do you learn something new because it's popular / in demand in the job market? For personal projects... maybe just because it looks cool or useful?
Jacquers wrote:
Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use?
I get to choose, but it has to meet requirements so you end up with limited choice anyway. For example, if you need to make a web application, then you can't just choose a native Android app on the basis it is interesting... because it just wont meet requirements.
Jacquers wrote:
Do you learn something new because it's popular / in demand in the job market?
Depends. If I was looking for a new job, or my current skillset appears to be dropping off the market at an alarming rate, then yes - learn what is in demand. Learning just the fun stuff is for people who have other (non-coding) ways to pay the bills.
Jacquers wrote:
For personal projects... maybe just because it looks cool or useful?
If I want it done fast, use what I already know. If I have plenty of time, then maybe look at something new... or more realistically, just pretend to have ambitions to making all the awesome personal projects I come up with but really just do other non-coding things with my spare time instead.
-
Perhaps something for a survey... With so many options how do you choose what languages and frameworks you learn? Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use? Do you learn something new because it's popular / in demand in the job market? For personal projects... maybe just because it looks cool or useful?
I'm very biased, so first off, I don't learn new things just because the blog-sphere and rags start raving about some new language or framework. Second, I love C# and I have absolutely no reason to use anything else, not even Python anymore as C# with .NET Core runs on my rPi's. Third, I've ditched jQuery, Bootstrap, and am pretty much biased against any of those frameworks like Angular, React, Vue, etc., because frankly, it's not rocket science to "get stuff done." I don't need bloat to "get stuff done." So for client-side development, I use TypeScript and that's about it. If I want a nice UI I'll use jqWidgets[^] but without all that framework support. For work I have to use ExtJS X| X| X| and am happy to use Angular, but for personal projects, I am highly opinionated and find no reason to "simplify" my coding with "complexity." The reason should be obvious.
Latest Articles:
Abusing Extension Methods, Null Continuation, and Null Coalescence Operators -
Perhaps something for a survey... With so many options how do you choose what languages and frameworks you learn? Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use? Do you learn something new because it's popular / in demand in the job market? For personal projects... maybe just because it looks cool or useful?
Of course, whatever matches best your high level view of things. I prefer logic programming, which means safe, declarative programming in the broader terms. So, now I'm going throu Rust apprenticeship, enjoying safety, functional programming at 0 cost, Wasm, multithreading, reactive GUIs, and more. IMHO, it's *the* language worth the effort.
-
Perhaps something for a survey... With so many options how do you choose what languages and frameworks you learn? Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use? Do you learn something new because it's popular / in demand in the job market? For personal projects... maybe just because it looks cool or useful?
What to learn? I watch the local job market, keeping a mental list of the in-demand skills. I learned a long time ago that desired skill sets vary by area, and skills in-demand elsewhere don't help me. I don't bother with anything that will not provide a financial return on my investment in learning time. Blogs are mostly opinion pieces that cherry pick "facts" to back up their points. I read some, but they never have the same importance as the local job boards. Do I sound mercenary? I'm not, just financially responsible. I have learned to truly enjoy luxuries such as eating and living in a home, so ensuring I'm employed is top priority. Technologies at work? Mostly I've had an influence on what technologies were used. If I didn't think a given technology would be useful going forward, I found slots which used technologies that I thought would be. [Not that I haven't guessed wrong -- on those days my Magic Eight Ball was cloudy and told me to try again the next day.] Side projects? Side projects fill two needs for me: 1) keeping my mind engaged in something I like doing, and 2) learning new technologies. I have lost track of the number of languages I learned, and learning new languages lost its magic a long time ago. However, learning what I can do with a language (for fun or profit) continues to be important. I have written an address book application a dozen times in various technologies. I know the requirements by heart and it includes the important concepts (UI, DB, business layer, etc.) for learning a new technology.
-
Perhaps something for a survey... With so many options how do you choose what languages and frameworks you learn? Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use? Do you learn something new because it's popular / in demand in the job market? For personal projects... maybe just because it looks cool or useful?
I personally go first and foremost with what makes the most sense for the task going for maturity, ease of use over popularity. And an overall stability of the ecosystem. Were I, for example, to do web frontend stuff, I wouldn't pick the some JS framework du jour but would go with something more stable (and I guess less exciting) such as TypeScript or Blazor. Granted, the latter is kinda new and fast-moving, but it's foundation in C# is solid. For dekstop development, my current choice during work hours is Delphi. It's got the advantage of not requring a separate runtime (which is an important topic when delivering software), but it's mature and modern as a language (with C++ catching up only slowly) and it got a, once again, mature and easy to use, UI framework integrated. Although I'd start the next project with C# because it IS a better language, still got a good UI framework and the runtime requirement is getting less important as .NET gets included in latter Windows versions (with C# binaries running cross-platform should that need arise later). The next topic I can think of is systems programming. There, I'd leave my old-and-tried-mantra because that whole "tried" part is, less important than safety which is IMHO actually way more important in systems programming than in high-level user-facing stuff. C is tried all right, but it's a nightmare to do anything productive with whereas Rust excludes heaps of bugs by language design and the compiled binaries are both compact and run fast making Rust my language-to-learn the moment I got to do anything low-level.
-
Perhaps something for a survey... With so many options how do you choose what languages and frameworks you learn? Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use? Do you learn something new because it's popular / in demand in the job market? For personal projects... maybe just because it looks cool or useful?
I have been most fortunate in this respect. As it turns out, I've always been able to just learn something because it seemed useful and the the fortunate part kicks in: it seems to be just what's needed where I work. C, C++, ODBC for Excel, web development, and others. At least I prefer to think of it as luck, although clairvoyance wouldn't be found offensive.
"The difference between genius and stupidity is that genius has its limits." - Albert Einstein
"If you are searching for perfection in others, then you seek disappointment. If you seek perfection in yourself, then you will find failure." - Balboos HaGadol Mar 2010
-
Perhaps something for a survey... With so many options how do you choose what languages and frameworks you learn? Do you just learn and use whatever is used where you work? Do you have a say in the matter? E.g. when starting a new project can you use whatever you want to get the job done or is there a specified language you have to use? Do you learn something new because it's popular / in demand in the job market? For personal projects... maybe just because it looks cool or useful?
Since I was the firmware department at the last place I worked (retired now), I was able to use whatever language I wanted. :) In reality, C/C++ is really the only option I had. Every microprocessor I've written programs for (small memory processors) has had a C/C++ compiler available for it. Plus, after being a firmware engineer for my whole career, I had built up a very large library of C/C++ routines.
-
I'm very biased, so first off, I don't learn new things just because the blog-sphere and rags start raving about some new language or framework. Second, I love C# and I have absolutely no reason to use anything else, not even Python anymore as C# with .NET Core runs on my rPi's. Third, I've ditched jQuery, Bootstrap, and am pretty much biased against any of those frameworks like Angular, React, Vue, etc., because frankly, it's not rocket science to "get stuff done." I don't need bloat to "get stuff done." So for client-side development, I use TypeScript and that's about it. If I want a nice UI I'll use jqWidgets[^] but without all that framework support. For work I have to use ExtJS X| X| X| and am happy to use Angular, but for personal projects, I am highly opinionated and find no reason to "simplify" my coding with "complexity." The reason should be obvious.
Latest Articles:
Abusing Extension Methods, Null Continuation, and Null Coalescence OperatorsTry Sveltejs. Might open you up to something new.