DEV Community

Anandhu Manoj
Anandhu Manoj

Posted on

Clueless developer, How to get back

Started my development journey in 2015. The first try was with PHP -- No frameworks just bare PHP!. That ditched me in a big hole of omitting best-practises.

2016

So basic PHP, HTML, and some sugary CSS and it was 2016 on the mark.
Learned Vanilla JS, Ajax, jQuery. The First thing I made (as I remember) was a popup-window using jQuery-draggable.

2017

A bit of Android with Java. Only a basic understanding of it.
Winter, Experimenting blender to make some fancy fire-simulation (again built-in) etc... and more simple websites for my own(never been in the server)

2018

real acceleration; the time where I lost
Learned how to play with React using create-react-app. Extended CRA, ES6, real webpack, jest, npm, localhost:3000
Built Small web-apps using React.js With REST API Implementation and stuff.
A Big Dive into Desktop applications with WPF and C#. Stuck with MVVM concepts for a month and finally some success.
Finally, some hobby python scripting for my personal use.

Real Confusion Here

  • Machine Learning: With Zero knowledge currently (Maybe TensorFlow or scikit)
  • Cloud containerization with Docker
  • Android Kotlin or Java
  • Ruby on Rails Or Node.js: Express Server

How can I Choose a good tech stack which is an optimal software development practice in 2018?

Top comments (16)

Collapse
 
rhymes profile image
rhymes

It seems to me you're trying to learn many different things in a short period of time and justifiably get confused by the wide array of options.

Let's start from the basics: what do you want to accomplish?

This question

How can I Choose a good tech stack which is an optimal software development practice in 2018?

is not a great starting point because any tech stack can be good enough or bad to develop software in 2018

Collapse
 
ianandhum profile image
Anandhu Manoj • Edited

The problem is that I always look for new frameworks and libs. Try something somewhere and the march to the next one. I can see Learning-by-doing could have a better win-win. I think I should review my requirements and find my optimal stack.
Thanks, a lot

Collapse
 
rhymes profile image
rhymes

Sure, but you need to stick to one set long enough :)

Collapse
 
vinceramces profile image
Vince Ramces Oliveros

A real carpenter does not carry a single tool. You need to focus on what you really want to build, you need to be versatile and focus on what fits for that tasks you've given. Benchmarking is important. But you should never compare to A language is better than B language. They all have their ups and downs. No language is perfect. though in android development, Google is trying to make kotlin as a default language in android development, so you should stick onto it based on what i've read in the discussion from google employees. Take it slowly okay? You're not running out of jobs, its just that there are many things to choose which confuses us on what tool we are gonna use for.

Collapse
 
alainvanhout profile image
Alain Van Hout • Edited

Plenty of languages and/or frameworks will be good enough for what you need. None of them will be 'optimal' though. Perfect existing solutions only exist for very very specific use-cases (typically those of the people that made the framework in the first place).

One suggestion I would make, is to not keep switching languages and frameworks. Those initial weeks are great to learn new things, but they are mostly useless when it comes to getting the necessary practical knowledge to actually get things done (beyond to-do lists). That takes months, if not years, regardless of the language or framework.

Think of it like this: software development is about building things. In a similar sense, you can't just build a house by digging into architecture and material physics for a couple of weeks, and then expecting a mansion to come out at the other end.

The good thing though, is that because most languages and frameworks will do, the experience you build up with any of them will translate into others as well, if not in practice then at least in making it far easier to get a handle on things in other languages and frameworks. Just make sure you start accumulating experience, rather than just names of languages and frameworks.

Collapse
 
ianandhum profile image
Anandhu Manoj

great response, thank you

Collapse
 
miberg81 profile image
Michael Berger

Well. People are trying to be so politicly correct, while all you wanted is to know what tech will be in demand. Your story similar to mine. I started with Java and Android and after a year or so swiched to the Web. Why??? It was just facinating. I was in love with android but i think it is not the future. The world is moving to one single platform (to save developer money) and this is the Web. So my new king is Java Script. I think it will be the king for a long time. So i learned like you all the web basics like: html,css,js,php - also without frameworks. So now i want to dive into Angular (maybe React as well). But hey! It's JavaScript. Basicaly i want to be a 100% developer. Full stack. Being able to create any site or app for any screen. So the fastest root is the web root. And i think in 5 years there will be no native anymore, only web-apps...Maybe I'm wrong. But i decided to shift my initial priority from Java& Android to JavaScript & Angular etc...I think it is the future. I do plan to practice some android but as my 2nd priority. I want to go deaper into Java as well - because it's a super smart language, ti be a better programmer.

Forget Kotlin...
Go for Java Script. The web is universal and it will kill all native.
Michael

Collapse
 
ianandhum profile image
Anandhu Manoj

Yes, But if I want to create an analytics app, which would be an optimal combination?

Node,react-native,blah-blah...
or
Ruby on Rails, Kotlin,...

How would you(your team) draw a conclusion which is best?
I am interested in the method that you would choose.

Collapse
 
Sloan, the sloth mascot
Comment deleted
Collapse
 
bgadrian profile image
Adrian B.G.

Optimal for what?

Anyway choose a career path that you like and stay on it for a few years to be proefficient. Companies prefer specialists so become one.

Collapse
 
ianandhum profile image
Anandhu Manoj

I meant some platform that has an advantage over the other. But I got my point. SPECIALIZE SPECIALIZE SPECIALIZE on something that I love. thank you

Collapse
 
bgadrian profile image
Adrian B.G. • Edited

Ok I understand. First of all JS is not optimal at anything, not even boiler-plating anymore or MVP.

There are some benefits and traits of course for your list, for example with Java (web or android) or Python you will find a job in a big tech company easier, if you remain on the back-end engineer Cloud with Docker & company will make your life easier to become a Cloud Engineer or a position in DevOps.

With Python you can target around 3 specializations starting as a dev: DevOps/SRE, ML and web development. All 3 are highly wanted on the market.

Most likely there are salary and perks differences between them, you have to study your region to find out.

Collapse
 
revskill10 profile image
Truong Hoang Dung

Any tech stack can be good, depends on your need. Because the reason a tech was born is to be good enough to be useful.
So ask this question first: What do you want to accomplish ?

 
ianandhum profile image
Anandhu Manoj

thank you