Create templates to quickly answer FAQs or store snippets for re-use.
The modern frontend toolchain is where I'm tapping out on the "full-stack" idea. I can do everything I need to do with server-rendered templating languages; if I'm working on something that requires getting serious about understanding React or Vue or Webpack, I'm going to be working with someone who knows React or Vue or Webpack. I can work out what's going on in there well enough to fix problems and add minor features, but I'm profoundly disinterested in digging deeper.
Same here. It feels like a waste of time learning anything as before a year has passed almost everything is irrelevant again. It is just to too much effort to keep track of everything that's going on there, besides keep track of everything in the back end.
I used to consider myself a full stack developer. But with the modern front end stack I think everyone who claims they are full stack are liers.
I've done the whole frontend toolchain thing. Webpack manually, webpack with code generators, vue, this tool, that tool. I hope I'll stay away for a while :D
I suggest digging deeper, you never know when a job comes along that if you can do that you'll get it because you can do it and others can't. Not all systems are new systems, the backbone of most of the internet is running on stuff from before most of us were born.
Being able to maintain and rework legacy systems is pretty lucrative and generally a requirement as your career progresses, trust me.
Machine Learning. I see it thrown around everywhere as the new thing to do, and I just can't build up the energy to dig into the complexities (both with the science behind it and the massive amount of different libraries available).
VIM and DevOps are actually on my current list haha, although that's also on the advice of my current manager. My own list includes:
I want to include calculus as well, but my manga book on Calculus always pulls me back in.
Oh cool! I have the book on databases from this series
Same here! Well I actually bought them all at once because...well just because :P
Here are mine:
In fact, I just care about PHP.
Functional programming useless? Learn the basics and you master recursion
you read my mind.
'cept replace PHP w/ Dev(Sec/Git/Chat)Ops as I've done PHP for 10+ yrs professionally.
My last affirmation was a gratuitous provocation. Although I don't care about items from the list above, I strongly care about Go, docker, gitlab, swagger, cloud deployment, ELK, prometheus and many others.
the list could be endless if I start adding things like SAP :D
These are the things that pop in my mind right now:
blockchain: I'm honestly totally bored to death everytime I hear someone mention "blockchain". It's not rational, I just tune out. Probably my subconscious is trying to protect me from the hype
kubernetes: super useful, just not particularly interested. More interested in what comes next, I need one more level of abstraction
AR/VR: reality is way more interesting for now :D
internet of things: except real sensors in urban environments... why are we doing this to us?
hardware: I don't remember the last time that I built a computer. Probably in high school. I keep a distant eye on what's going on in storage and memory advancements though.
AI/ML: turn down the hype. Learning something about ML is quite useful though
PHP/Wordpress/Drupal: I know, I know. I shouldn't judge a book by its cover
"...the list could be endless if I start adding things like SAP :D..." Truth.
I feel you.
This is my list! Like everything I came here to say you've already covered!
Your mention of Kubernetes and comment "More interested in what comes next, I need one more level of abstraction" is spot on! 👌
hhaha thanks Paul! I hope to skip the k8s frenzy right to serverless (which might be very well orchestrated by a kubernetes cluster underneath, who knows :D)
am also not interested in blockchain technologies
CSS. Which is sad, because it's ubiquitous. I've scratched the surface, but I'm both bad at and uninterested in creating pretty layouts and designs, I'm more interested in the machinery. I'd be happy with a motherfuckingwebsite.com/ world but alas.
This shocks me, but moreso I respect you for writing since I know there's likely MANY other devs here who'd say the same :P
Takes all kinds, right? I'm rather glad there's people on both sides of this one around.
aw! I'm sad you don't want VIM in your life :) I find it quite useful in my case.
As a student in comp engineering, saying I don't want to learn math is impossible. There is much math, but I am glad I went from total dumbo to pretty decent.
For me, I don't want to learn anything about blockchain. To me, it's just a buzzword whose trend will fade eventually.
I'm sad you don't want VIM in your life :)
I'm sad you don't want VIM in your life :)
That's the problem with religions ... :-)
Vim is clearly superior, let met demonstrate you !!!
I should use the /s more often. I sincerely don't give a damn about what people use :)
Also, I probably won't ever learn one of those Mac-centric languages. Objective-C confuses me with its brackets and stars and NS-something names and I fail to see a use case for Swift that does not have half-eaten fruit on it.
Objective-C, as I explained on FB the other night, is mostly for legacy code. Even at Apple, unless you're directly working with macOS, you're probably unlikely to ever use it there since they're clearly transitioning to Swift now.
I personally know Objective-C better since when I started iOS development, all the tutorials were in that language since Swift was way too young at the time. And I'm glad I did.
While you could use Xamarin these days, the downside is it's still a young Microsoft tool.
And very timely with the end of year period of reflection coming.
Here’s my list of what I’d like to and not like to be doing (from a Data Analysts point of view)
Things I’m interested in:
Things I’m not interested in:
Excellent list of likes & dislikes, Helen. I'd concur with a whole lot of points especially DevOps, documentation, AWS & more importantly helping people solve a problem.
Dislikes would be math related stuff like the whole space-time complexities (Yeah I know a lot of people would disagree with me but I believe it looks good only in those hardbound books, haha) along with the whole paradigm of preparing and giving a live whiteboard interview and/or some kind of an online challenge that evaluates one's programming skills
Good devs are usually concerned about what impact their code has on the product and the end-users rather than scoring high on those tests because it's clear a solution can be found in conjunction with Google/StackOverflow/Official Docs anyway.
Math isn’t my strong suit. It’s never spun my wheels and I’m not very good at it. I sit next to a group of data scientists who are always whiteboarding complex looking equations, while I’m more concerned about keeping the database clean, organised and not broken for when they start using it. I thought data science could be a good next move, but the advanced math and statistics has scared me off.
I agree with you on coding just to get high scores on tests too!
I want to solve problems and make something better not just do it for the sake of doing it :)
Even I've never been a whiz at math either. I also believe the whiteboard challenge in a interview is never a true indicator of one's coding skills since the human brain can remember only so many things and there's no assurance that someone who aces those will necessarily be a good fit at that particular organization.
For me, the list is as follows:
This is an interesting question. At the moment, here are some things I can think of:
Machine/deep learning or anything related to AI. This includes a good amount of things labeled with data science
Mobile app development (although I'd be willing to try Android at some point if necessary)
Game development and graphics programming
Oh spit, 🚨Good Question Alert 🚨!
For me it’s probably “another interpreted language” and “React”.
I'm right there with you on React. Just seems to have a way to high of a learning curve for the kind of front-end work I do, and I'd much just stick with Vue.
I’ve noticed that learning curves aren’t equal for all people in all things. I think there’s something to be said on this subject around opportunity cost as well. In the time you learn React, what else could you learn?
Yeah, you're right about that.
But if you look at the job market, you'll see that there is a plenty of jobs related to React, so I think that, if you are looking for a job, it would be really good to know some React.
You don't need to React if you're working on the backend tho, but on frontend days of jQuery, Wordpress and PHP are long gone, and you should at least know the basics of the most trending technologies. That's where the money is :)
In the end, I guess it's all just about priorities, and your goals.
Don't be so fast to discount Wordpress (and the supporting LA/EMP stack).
Wordpress runs 32% of all websites that report tech. That is >50% of ALL content management systems in public use.
PHP as well, 78.9% of all reporting public websites.
Not going away any time soon.
For me, it’s not the learning curve so much as a style issue (old complaint I know, but still valid imo), and a issue with the trends in the greater frontend community.
For me, it’s not the learning curve so much as a style issue (old complaint I know, but still valid imo)
For me, it’s not the learning curve so much as a style issue (old complaint I know, but still valid imo)
Issue with the trends in the greater frontend community
Issue with the trends in the greater frontend community
Can you please elaborate on these? :)
PS: I'm not trying to start a frameworks/style war here, just interested in another peoples' opinion.
I don't like JSX. I think that's a valid issue, but it's kind of tired and has been litigated to death so I don't really care to re-open it. I think given the choice of "procedural in your layout" vs "layout in your procedural", the former does a much better job of separating concerns. I like the Vue approach to single file components more as well. React (or at least the community) has kind of taken the "JS-ify everything" approach, which I don't really care for, I think HTML and CSS have their place and there's no reason to wrap or indirect them with more JS.
Regarding objections around the greater frontend community, I have issues with hype cycles, build processes, "thought leaders", and what seems to be a trend towards "blog post-driven development" but I don't really want to get into them in this forum.
I do front-end work when I have to, it's just not something I care to do much more of.
Maybe valid for you 😛You can write React without JSX tho:
Just one more question, if you can share with what stack are you working?
I'm working with React, React Native and Vue at my job right now, and while I find React much cleaner to work with I don't have major issues with Vue, in opposite I really like how's some stuff implemented.
Vim, 'cause you know that Real Programmers Use Emacs
Outdated technologies. I don't care to learn development environments that were popular in the 90's and early 00's like Powerbuilder, SQL Windows, Foxpro, ColdFusion, etc. I do know VB6 but I don't want to be stuck only doing that.
Languages outside of the C/C++ linage (ie ones other than C++/Java/C# type languages). While there are some intellectually interesting languages out there, I prefer to stick with what has worked well for me.
A lot of CLI stuff. I did a lot of CLI back in the early DOS days. I wrote my own tools to automate a lot of this. Having to use a lot of CLI to do stuff is annoying to me and makes me want to write tools to automate it (again).
oh my, Powerbuilder. Brings back memories :D
Blockchain. I've bought books on it, read countless articles, hell even invested lost money in cryptocurrencies. I just don't get it, and I haven't been able to convince myself to want to get it.
DevOps. BlockChain. Angular.
It's really hard not to fall for shiny object syndrome, so I think you really have to keep that focus in mind of what your goals are for being a developer <3. Thanks for posting this, as always ali :)
I'm not interested in learning iOS or Android or other native GUI programming (but will if I have to).
There are other things that I'm interested in for curiosity's sake, but would probably be a waste of time in the short term for my career path, like assembly language, AI/machine learning, connectome simulation. I do want to learn more math, now that I've become unsatisfied with popular explanations of modern physics, but it would be a distraction as far as my career is concerned to spend time on it.
Everything always seemed so confusing to me and having to write Java doesn't make it much more appealing. I did hear about alternative ways to develop for Android with Dart, Flutter, Kotlin and whatnot, but I'm still not so keen on figuring how those work.
Although I feel like I can't just completely ignore Android as there are just so many users, but boy will I hate the learning process
I think you should take another look at Android dev because there's been tons of improvements. Kotlin is a really solid language and I don't think I could ever go back to Java after having used Kotlin.
Also the Android team launched Android Architecture Components (ViewModel, LiveData, Room), Material Design 2 etc. which have made development immensely easy. I used to find iOS much easier to develop for but now they're both almost equal.
I’ll be happy if I never have to STIG another server or dig into micromanagement with global policy.
Nearly everything else is interesting to me, though.
I like to consider myself adept and always open to learning new areas of technology; with that said here's what I'd likely nope out on if a core part of a position i was applying for.
I probably need to put on some asbestos underwear before saying this, but mobile or front-end/web development.
Ugh, I don't know
and I bet more stuff but since I'm not interested in learning those I don't have them on my mind at the moment haha
Cool Topic by the way
I tend to gravitate toward content, meaning, and information, i.e. what a program actually does. Therefore these technologies are uninteresting to me or even get in the way of my work:
Entity Framework & Rails: They get in the way of my research focus of working with fields directly rather than structures of fields.
Cutting edge Front end Technology tool suites: They seem to change faster than I can learn them. And for me the real action is in the middle tier, not the front end.
Dev-Ops, Admin, networking: Just the stuff my programs run on. I'm not really interested. I care about what my programs do, not where they run.
Security: I want what I produce to be available to everyone. Why focus on technologies that limit this?
The Internet of (hackable) things: Why make people even more vulnerable to hackers in the physical world than we already are?
The things you have on the list are on mine as well.
Not so long ago I wanted to learn everything and thought it is possible. Some job descriptions made me feel that I need to know everything. Now I know better - there is too much and I need to specialise to achieve any notable results and satisfaction from my work.
Everything else is not on my "to learn list" at the moment.
The problem is that this category of things is so small! There are too many interesting programming things!
Anyways, I know it's weird for Python, but I really don't have that much interest in Machine Learning. Also, I've never found blockchain stuff that interesting.
These days a web developer I'm not interested in using anything bloated or/and unreliable, including:
I still can read the source and explore everything to discover good patterns and ideas.
Now I'm interested in simple tools:
Things I'm not interested in learning:
iOS development - I'm not interested in developing under the constraints of Apple's 'walled garden' environment (plus I don't have a mac and the more I think about getting one the less I want one).
Anything to do with tracking technology built in to many advertising and analytical products - I don't want to build general-purpose tracking technology into the things I develop.
Other than that I'm still on the voyage of discovery, but I'm sure I'll find more things I'm not interested in as I go along! (Oh, and I agree about Vim - I'm very happy with Atom and VS Code).
Oh, this is a fun question :) Interested to see what other people answer.
Native mobile development. If I want to create something people can access on their phone I'll build a PWA.
Ruby. I know a lot of people here love it but I haven't had to learn it so far so figure it'll be fine if I never bother.
I'm not interested in learning React and similar front-end frameworks such as Angular and Vue.
The reason for this preference is that I have unique circumstances and goals that warrant such, namely I have the condition that I must make small and simple products which do not require the need to use the likes of the aforementioned front-end frameworks.
Should my conditions change in such a way as to warrant the use of the aforementioned front-end frameworks, then the probability of me being inclined to learn them will increase substantially.
Allow me to explain...
(In other news, Ruby and Django are squarely on my list of languages TO learn!)
As to other things I am not interested in, here's a short list:
I'm still on the fence about machine learning. I won't say "never", simply because it may fit into some future game ideas, but it isn't on my list at the moment.
Sad but true, it's not that many people want to dive into VIM. But I personally think that it's the best investment you can do to yourself as a developer.
Nevertheless, my list would be JS (and its infrastructure), DevOps and Blockchain stuff.
VIM is 'da bomb' for Advanced math, DevOps, and Lower level programming. She already says she has little interest in those things. So I think her choice of not learning VIM can be easily understood and is probably well founded. Oh, and when I stared VIM it was a step up from previous editors.
Blockchain - It's a truly worthless technology
Blockchain - It's a truly worthless technology
ahhaha I don't know if it's true but I feel it's the most hyped tech in the history of hype
I tend to avoid anything people obsess over until the hype cools down and the real opinions start to come through.
Other than that, i am naturally curious and look into a lot of things so i at least have an awareness and basic understanding of it in case i work on something that might need it in the future.
Two words. BLOCK. CHAIN.
I am disinterested in the back end. I understand the principles and programming patterns, but I get nothing out of working in the back end. The front end is where it's at! 😁
The front end is not a front end without a back end.
Which came first?? 😶
You might be interested in playing around with serverless functions. Takes a lot of the headache around backend development, and lets you just focus on the stuff like DBs that you can't do only on the front-end.
I've got a list of Must-Have, Nice-to-Have and In-the-Future skills.
In general, I'm not interested in things,
that don't solve real problems
or are currently to hard to learn to solve real problems.
Here's my list off the top of my head. This is with the caveat that I'm always willing to learn the tools needed to do a job that someone is paying me for.
-Ruby on Rails: I know Python and have experience with several Python web frameworks, so I don't feel like it's as useful to learn another language and framework with a feature set that's so similar. I'd rather focus on new paradigms
-Windows based development: At this point, I'm happy on my mac, and if I ever move, it'll probably be to Ubuntu.
-Graphic Design: I'm visually impaired, so focussing time on this would really not be playing to my strength. I love knowing the basics of how to make a webpage that looks reasonably nice, but you'll never see Adobe Creative Cloud on my credit card statement.
-More Java than I already know
There's also a lot of stuff that I'm somewhat interested in, and will read an article on if I come across it, but don't take an active role in learning more about it. This is stuff like game development, non-web related security, hardware, ...
Considering how limited the time is, that is really freely available for deliberate learning activities and how vast the potential body of knowledge, it is wise to know what not to do.
I don't have a list, but I have some criteria against which I assess topics I might spend time on.
Longevity / Transferability
I generally prefer to focus on topics that are not bound to a specific technology, or (actually more common) where the technology is only the means of presenting an idea.
Usefulness / Applicability
There are many concepts, which satify the first criterion, but the when chance of applying them at all is rather slim, then other things will take priority over them: Use it, or lose it. Time is too valuable to spend it on learning things that will soon fall into oblivion. Never say never though: in my first year after university, I found several use cases for algorithms/concepts from the more theoretical course of my curriculum, while some practical courses appeared rather naive in hindsight. Also, if I'm very committed to a specific technology, I keep up with it. The technologies i commit myself to are rather clearly defined for me, albeit I reassess the decision regularly.
Sometimes a jobs just needs to be done. Let's not pretend that everything we need to learn will be beautiful timeless ideas. Sometimes it's some poorly documented functionality of some obscure library/server/database/you name it, that needs to be grasped. That's where it comes down to a judgement call (and certainly a matter of confidence and experience): do I rely on copy-pasting from StackOverflow, or will I swallow the bitter pill and really research and understand it from the ground-up.
I was rather tempted to post my list here. In fact, I drafted a comment twice then deleted it. But aside from my remarks sounding too negative, I fear that the end result will be that I will see more of the things that don't interest me. Because people will read these comments and think: "They don't like it because they don't know how awesome it is. I'll write an article explaining it!" 😀
The Dvorak keyboard layout. I had a coworker a few years ago who was a Dvorak evangelist, talking about how much time he saved from typing efficiency alone. Seemed like a textbook case of effort justification to me. There is no efficiency gain big enough for me to want to reroute the muscle memory in my hands.
Blockchain. Not only is it buzzwordy and overhyped, but the energy consumption necessary to mine cryptocurrencies based on the blockchain is an environmental hazard and a huge ethical concern.
Mobile native app programming.
I vehemently hate installing apps on my phone that have no business being an native app when they could have just build a responsive web app, and too many apps in the marketplace are like that, and most Android apps are pretty shitty and potentially insecure (at least back in the days).
Web APIs are getting more and more powerful, browsers have gotten a lot more performant, and there's a lot of modern techniques to make very high performance web applications, I think web apps is the future.
In general though, I still try to learn the core concepts of each technology to figure out what's the appropriate application of them. Along that lines, IMHO there's very few places where there's a real need for blockchain.
React: Too much hype and I don't think I need that much complexity and state management for the kind of apps I work with right now. And for new projects, I rather start really simple, i.e. no frameworks, and build my way from there
React Native: Too unstable- at least when I tried it out. Worked with it for around two months and spent most of my time debugging dependencies and stuff not related to actually getting something done
Machine learning / AI: I don't like statistics. I tried machine learning for around five months while doing a Machine Learning Nanodegree at Udacity, but left it unfinished
Also guys, seriously learn advanced math. The newer technologies you guys are talking about were built on pretty crazy math concepts, as your career progresses and technology does, there's not going to be a huge market for people who can do stuff we're in the process of automating.
The people on those projects automating everything make a lot of money and the reason they can is they understand these deep concepts. At scale a lot of the things you guys think are easy actually require a very good understand of pretty complex mathematical concepts and ways of thinking or your servers are going to overload no matter how many servers you throw at it.
To stay on the topic though, I don't really have any desire to learn Ruby in any more depth than I already have unless there's a project or reason for me to do it, nor objective-c as I already know several c based languages and swift is slated to replace it anyway and I know enough to be able to context switch to knowing it as well as most programers in 1-3 days.
There is nothing I have no interest in learning, and I would suggest anyone with that attitude reconsider that position.
I'm a senior software engineer, have managed a team before, have literally taken servers in a company that was failing and reworked everything to make the company profitable again and helped the owner sell it as their tech representative, seen and helped manage a few buyouts, have done software engineer and dev ops positions, front end, back end, networking, security, etc. Pretty much full stack developer that has worked at Amazon and Booz Allen Hamilton, multi-nationals that didn't start in the US, startups, you name it.
There is nothing I have learned in my career that I regretted learning that down the road I didn't need.
You really should learn all of the things mentioned, especially if it's something you can learn to advance what you can do at your job. There isn't something I've come across that I didn't at least dabble in and research when I came across it, I would suggest even if you don't have the time to really delve into it, at least get marginally proficient enough to know what it is.
If you come across it, odds are you will again in my experience.
Just my advice, I've been in the industry for over 10 years and academia in paid positions at least 5 before that.
To answer the question asked: I'm not interested in learning anything that's documented exclusively in 1000 page PDFs. (Encountered 2 such systems at my last job and found it highly demoralizing. 😬)
On the VIM tangent…
For anyone who's in the "I'll learn VIM when I've got tons of free time and feel somehow inspired to slog through the VIM tutorial," check out vim-adventures.com! (No affiliation.)
I started the tutorial twice without finishing before stumbling on this surprisingly-entertaining game. It had 12 levels, rather than 13, at the time, and I finished them all over the course of a few days and came out with skills I thought would be forever beyond my reach!
The first 3 levels — which are free with no account creation necessary — give you a good feel for it, along with the basics needed to begin to "feel" what VIM motions can do. As a matter of principle, I generally hate to endorse products in open forums, but this one's worth making an exception as it's rare to find anything that makes learning a dry technical skill feel not just fun, but effortless.
I don't want to learn vim because back in the day I learned vi and that's enough for me :) (I used to know how to use ex and ed well too, but fortunately I can't think of the last time I was forced to resort to line at a time editors.)
I used to want to know Drupal but fortunately I no longer have to deal with anything like that professionally.
Not interested in Ruby.
No Haskell. (Tried once, briefly, broke a tooth.)
I'm happy to see that you're also not interested in devops and lower level languages :) I had the same idea in mind a couple of years ago when I was building and setting up the production node.js environment at work. That led me to develop stormkit.io which was built exactly with this use case in mind: Just focus on your code, and get your production-ready environment out of the box. It's still in the alpha stage, so I'd be super happy to hear your feedback.
Data analysis and visualization. Don’t get me wrong, I absolutely love to visualize my own data (heck, I organize my financial data and display it for myself as if it was a 90s financial newspaper, just for fun; cue to my design and typography background) but I am absolutely not interested if the data is other people’s. I don’t like treating “audiences” like herds of sheep or like some thing to study. Analytics, studying users and customers, putting everyone into labels and boxes? I don’t like it. I’d rather make useful products that grow organically, instead of entertainment sugar that analyzes users like a microscope.
I think my point is, I’m not interested in user analytics.
Exactly your points and more:
DevOps extravaganza. I learn exactly what I need to do deploy things. It's too complicated and boring to death.
.NET or anything related to.
VR and AR.
Blockchain - useless outside hype bubble.
I would say nothing that never reaches the break even point between investment and increased productivity (or what ever the gain is).
The problem is you often don't know it beforehand and therefore in my opinion something you definitely want to learn is how to fold a bad hand (or skill).
iOS app development, never had real interest in it.
I should have precised that it's useless for my own usage :)
Ali I agree with everything on your list
Don't hate me Ali, but python. Nothing against it, but feels like it fills the same niche as some other languages I know and I've got other things I wanna do :)
CSS. Cause its hard for me to understand
Networking , robotics , block chain , AI , Design
VIM - Elitists
Go - Hate that smug little gopher's face everywhere.
Perl - Just no.
-> Front End and UX stuff
-> TOTALLY VIM, it scares me
JOOMLA > Will always use WordPress.
Lower level programming
Could probably think of so many other things but these are what immediately spring to mind.
Salesforce. I've done two database transitions into Salesforce, and that's enough for me.
I partially agree. It is true that learning about too many things is little practical. However, there are some things that every programmer should know, at least the basics, in order to be a better programmer. For example, assembly and computer organization is hard but it will help you tremendously to be a better programmer. How caches work is very important in order to build programs that follow locality principles and are cache friendly. Pipelining is another important concept. Math, well, I’m biased, I also have a math major and love combining math with CS. It is extremely useful. But it depends on your career. If you are not doing anything that requires it, then I understand. But in general math teaches you how to think.
Things I would not like to learn is front-end development, game development and some more. My list of preferences in order includes data science and ML, algorithms and data structures (in-depth) and systems programming.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.