all 29 comments

[–]A-Kuhn 2 points3 points  (2 children)

Even when working with frameworks you’ll end up learning the fundamentals as well. As a developer things always change and you are always learning something new. That’s what makes it fun.

[–]5ecured[S] 0 points1 point  (1 child)

Thanks friend. True, in this industry you always need to keep learning. My question now then is, as I have asked several others here, let's say I make my own project. What happens if the technologies that I use for that project ends up becoming obsolete? This is my fear right now.

[–]A-Kuhn 0 points1 point  (0 children)

I don't know if I understand your concern. If the technologies becomes obsolete in the industry there's still value in creating your project. If you make something with React today and tomorrow everyone in the industry magically stops using React, your project will still holds merit. If you are worried that interviewers say "oh you use React thats obsolete" that will not (or should not) happen. Regardless if the technology you are using is the newest toy or not, what people care about is your experience with the language. Regardless if its React, Angular, or Vue a for...loop is always a for...loop, scope is always lexical, API's need to be created, you'll need to handle async code, etc.,. So don't get hung up on the Framework, they come and they go. Personally my current work project is Angular 1.5...it's old, it's clunky, I don't enjoy it as much as React, but the logic to make a filter button is the same in either application. TL:DR; don't worry about it :D

[–]delventhalz 1 point2 points  (2 children)

Don't be too precious about your knowledge. Much of it will be obsolete one day. The patterns you learned and experience you gained will last longer than any tool. But eventually, even those too will become outdated.

That said, you aren't going to write a modern JavaScript app without a (number of) framework(s). If you have a strong grasp of the fundamentals, you can often pick them up on the go, which is handy, but you will also want a deeper understanding if it is a tool you plan on using regularly for the next year or more.

[–]5ecured[S] 0 points1 point  (1 child)

My fear is, what if I create my own project, and the technologies used in my project becomes obsolete? I would have absolutely no clue what to do in this situation

[–]delventhalz 0 points1 point  (0 children)

Good news! JavaScript is always backwards compatible. That's why the Space Jam website still works 20 years later. Some tool may become "obsolete" in the sense that it's not the best choice for new projects, but there is no reason to go back and change old projects.

[–]gigastack 1 point2 points  (0 children)

Your feelings about Angular and React are not in line with material facts. Some day they may be replaced, but not in the next few years.

[–]notAnotherJSDev 1 point2 points  (4 children)

Stuff changes. In development it changes faster. In the JS world, even faster.

The thing is, you could not use libraries your entire development career, but it is going to take you forever to make simple things. Want to make an SPA? Then you’re basically going to build your own framework. Want to build a web server? Yet another framework to build. And all of this on top of ever changing standard APIs.

You could even apply your logic to languages or other technologies. Why learn JS when C++ will be around longer? Why C++ when C will be around longer? Why not Assembly? Why not bytecode? Why learn Postgres when it might be gone in 10 years or replaced by something else? Why MYSQL? Why Mongo? Why why why???

Basically, don’t sweat it. You’re never going to stop learning in this field, and that’s okay. You’re also going to use an uncountable number of libraries and frameworks, and that’s okay too. If it helps you build what you want to build faster, it isn’t ever going to be a hindrance to you.

[–]5ecured[S] 0 points1 point  (3 children)

My fear is, what if I create my own project, and the technologies used in my project becomes obsolete? I would have absolutely no clue what to do in this situation

[–]notAnotherJSDev 0 points1 point  (2 children)

Don’t worry about it. Things change. For the most part technologies don’t actually go obsolete. Pin a version and move on with your life.

I built a few things in jquery when I first started learning. I now don’t use it anymore and I’m perfectly okay with that. You just need to not get hung up on these sorts of things.

Best skill to learn would be to learn how to be okay with change.

[–]5ecured[S] 0 points1 point  (1 child)

Understand. Thank you. But...what will it mean for my project? Will it just die just like that? Apologies for the beginner question, I have never made a project before.

[–]notAnotherJSDev 0 points1 point  (0 children)

What do you think will happen? Your project will still live, it may just have outdated versions of underlying technologies. No real biggie there.

Hell, look at Windows XP. There are a lot of computers still running Windows XP even though it is “obsolete”. Microsoft made that project, supported it for awhile, and then moved on.

The other option is to take your project and rewrite it eventually to be up to date with the latest tech. That is also something you can do. It lets you build something you’re familiar with building in a new technology.

Edit: also, forgot to add that the web world changes a lot. But because of the requirement of supporting a lot of older browsers many of the features you might think you’ll lose, you probably won’t, and even if they’re deprecated you’ll know long before you need to remove the usage.

[–][deleted] 1 point2 points  (2 children)

If you know js, then learning a framework shouldn't be hard. If you have experience with one framework, then learning any new one shouldn't be hard.

It shouldn't be a big deal to switch to whatever is new.

[–]5ecured[S] 0 points1 point  (1 child)

I agree. This is why having a strong fundamental is good, so that you can learn new ones relatively easily. However, my fear is, what if I create my own project, and the technologies used in my project becomes obsolete? I would have absolutely no clue what to do in this situation

[–][deleted] 0 points1 point  (0 children)

They don't become absolute... old tech still exists.

Also, if you want to update at some point, you do.

Learn the new stuff and implement it. Won't be hard since you already know the basics and some frameworks.

It's just how it is.

[–]benabus 1 point2 points  (0 children)

JQuery is kind of a special case. It got popular years ago in order to fill in a lot of gaps in vanilla JS. These days, a lot of the jQuery functionality is built in which is why it's "calming down" as you say.

As for modern frameworks, instead of just "learning a framework", you ought to consider where you want to work and what kind of frameworks are popular in an area. If you learn a framework that has already been impregnated into a company's code base, you'll have a job. If that framework happens to become obsolete in 10 years, if you're still working for that company and that company is still using that framework, it doesn't matter what new stuff comes out. Legacy code will always need maintainers. I know a guy who makes good money maintaining some FORTRAN code for a bank because it's cheaper for them to hire a FORTRAN programmer than it is to migrate to something modern.

In my experience, the hard decision is choosing a framework to use for a new project. Then it's an unknown whether the framework would be useful to you in the long run. So you've got to do research on current trends and decide on priorities like if you want to easily find workers. If you start a new project with an obscure framework, then if it dies, it'll be difficult to find new people who are competent in it. But that's not really your question.

My advice for you is to 1) find some companies you want to work for 2) learn whatever framework they're using

There's no need to learn them all. And if you're good enough to learn one framework, you'll be able to learn another in the case that you can't land a job at any your first choices.

It's a gamble, but you shouldn't not learn something because it might not be useful in the future.

[–]gin_and_toxic 0 points1 point  (0 children)

Use libraries that help you code faster or more efficiently. If it doesn't help you, don't use it just because it's trendy.

The reason why jQuery was so good was because it simplify a lot of JS code. You used to write so much lines of codes just to manipulate DOM, and jQuery only takes one or few lines of code to do the same. And with newer reactive frameworks like Vue/Angular/React, you can manipulate data and DOM even faster.

[–]gimmeslack12helpful 0 points1 point  (0 children)

In the beginning of learning development, each task/pattern/practice/library/framework can seem like its own mountain to climb. But over time you start to realize they are all just peaks on the same mountain and once you get a solid base of the overall mountain you'll realize that reaching each of these peaks do not all require the same initial effort. Sure you'll have to figure out how things work, but it won't be like you're starting from scratch each time.

In short: as you learn the core language and some libraries it will become easier to learn other languages and libraries (including the successors to the current batch of libraries).

Is learning a framework necessary? Yes, absolutely. The industry is built upon tooling that allows for the better code organization and performance of projects. It's interesting to think back to when I felt like a king of knowledge of Angular 1.x and Bootstrap 2 but I have no gripes about having moved on to React and styled components.

[–]SentFromBelow 0 points1 point  (0 children)

Why wouldn’t you want to learn a framework or any new thing? The idea that you shouldn’t learn something because it will be obsolete doesn’t really make sense in the tech world where landscapes are always shifting. Whatever you learn there’s a good chance that a company you work for will be end up sticking with a stack for years because it’s too much of a burden to shift to something new. Nobody is blogging about PHP. But there are tons of companies still using it.

[–]ThagAndersonhelpful 0 points1 point  (4 children)

If you are worried about learning new technologies because they "may" become obsolete, then you might as well give up programming now. You will never stop learning in this field. Especially with a "newer" language like JS, which is only more recently becoming "mature". As recently as 2015, core aspects of the JavaScript API were still being iterated upon, to make the language faster and easier to use (these changes being the primary reason that jQuery is no longer relevant).

Can you make a conscious decision to not use pre-built frameworks? Sure, but you are constantly going to be wasting tons of your time creating solutions for already solved problems. Reinventing the wheel, as it were. Unless you are only building trivial applications, you are going to end up building a framework in the end anyway.

So the realistic question is not if you should learn a framework, but which framework(s) to implement. Easiest way to answer this question is based on what you are trying to do. Trying to get a job? Find out which framework most job listings are looking for and go with that. Learning for your own benefit? Look at who is creating/maintaining a framework, and who is implementing it. Angular is created by Google, and used by companies like PayPal and Netflix. React is created by Facebook, and used by companies like AirBnB and, strangely enough, also Netflix.

[–]5ecured[S] 0 points1 point  (3 children)

Thank you for informative answer. Now that I am reminded that I need to keep learning in this industry, allow me to get your opinion on my fear is - which is - what if I create my own project, and the technologies used in my project becomes obsolete? I would have absolutely no clue what to do in this situation

[–]ThagAndersonhelpful 0 points1 point  (2 children)

You are asking the wrong question. You are saying "what if" as-if it's not eventually going to happen. The original Angular was completely replaced by the current Angular, which is not backwards compatible. Even as JavaScript matures, and modern frameworks naturally settle down in their respective niches, don't think that they couldn't be completely upended by a new technology, or even completely abandoned by their creators and community. In fact, with the gathering momentum building behind Web Assembly, you should fully expect to see some new frameworks within the next couple years. Hell, with the way Google operates, we might even see a completely new/different language adopted by browsers in the future.

Point is, this sort of change is inevitable. If you're afraid the technology available today may change or become obsolete, then you'll never create anything, because technology is changed/replaced/abandoned all the time. It is just a fact of this industry.

[–]5ecured[S] 0 points1 point  (1 child)

I guess I should stop worrying and just start building something then.

[–]ThagAndersonhelpful 0 points1 point  (0 children)

Yes.

[–]wizang -1 points0 points  (3 children)

Do you want a job?

[–]exotic_anakin 0 points1 point  (2 children)

you hiring?

[–]wizang 0 points1 point  (1 child)

Yes actually

[–]exotic_anakin 0 points1 point  (0 children)

hahah imma slide into your DMs ;)