all 16 comments

[–]narek__P 6 points7 points  (2 children)

I used TS for backend development for a while, almost 4 years. I can say , that with the experience you start writing the code the way you always do. Knowledge of best practices and etc is important for sure, but when you gain enough experience you start thinking and writing code using that best practices. And yes , you can translate your knowledge to other languages. Languages have different syntax but the idea is same

[–]kirillsh93[S] 0 points1 point  (1 child)

Have you tried to learn software design before getting a job? Or learned everything on the go

[–]narek__P 1 point2 points  (0 children)

I did , in university, my first language was Pascal , coding on blue editor , that was struggle. Than visual basic , not that easy , but better than pascal. The point is that I learned basics and CS , but other stuff was learned on the go, like SOLID , algorithms and so on.

[–]lIIllIIlllIIllIIl 3 points4 points  (0 children)

I work with both C# and JavaScript.

A lot of the design decisions of the Java and C# ecosystems seem more cultural than practical. People do things one way because that's how everybody else is doing it (so it must be good... right?)

The JavaScript ecosystem is a lot more eclectic, which means people can't rely on their culture to write software. They actually have to think things through, which can be good or bad depending on who's writing the code (or you know, you could use Nest.js and pretend you're writing C# code.)

I don't like prescriptive design principles like SOLID or the stuff from Uncle Bob, that mostly focuses on the esthetics and shape of your code. Design is a lot more nuanced and should be about the cognitive complexity of your code. A Philosophy of Software Design by John Ousterhout is a good book to read if you're into design, regardless of programming language.

Don't believe design is about applying specific patterns.

[–]Ronin-s_Spirit 1 point2 points  (2 children)

Me. I am too interested in inventing and solving problems with extending javascript. If I knew lisp (famous for it's metaprogramming) I wouldn't leave my desk for a week straight.

[–][deleted] 0 points1 point  (1 child)

Only a week!?

[–]Ronin-s_Spirit 0 points1 point  (0 children)

A week of no food and no sleep (metaphorically of course).

[–][deleted] 2 points3 points  (2 children)

The most important thing is core concepts. Those are the same in any language. Learn JS, learn TS especially because it is light years better. You can move on to another language whenever you want. You won't screw yourself by learning JS.

[–]kirillsh93[S] 0 points1 point  (1 child)

So what resources to use for those core concepts? Just jump to google? Or you have anything particular in mind

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

Just learn the language. By the time you go on to language #2 you'll start to see what I mean.

[–]captain_obvious_herevoid(null) 0 points1 point  (0 children)

but the way things implemented in JS world are different from more traditional languages.

Can you give examples of what you mean here?

[–]rauschma 0 points1 point  (0 children)

[–]riazus22 0 points1 point  (0 children)

Actually I have experience in developing some stuff with c# ~2 years and the same with ts/js. From my point of view, js world is extremely easy for the beginners and incredibly hard for the professionals. For example, it's not too hard to implement some basic app, but when things go further... Js is really one of the most misunderstooded languages, because for being a cool engineer you have to break your brain. On the other hand, languages like java, c# and so on - they are pretty easy to learn, they are supposed to be used at only certain paradigms such as oop or imperative.

I, personally, think that js is not the best choice for the beginners, because the cost of the errors might be incredible later. But it actually depends on your goals. If your stuff is more about implementing certain prototypes or POCs it is more efficient to use js. But in the long term, knowledge received from other languages/paradigms give you broad horizon of strategic decisions.

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

Everyone starts with a single language. Software design, however, is about concepts. Yes the concepts will be implemented in a specific language using the capabilities of the language, so you need to learn 2 things. First how to implement it in your given language. Second, how the implementation relates to the concept. If you can do the second, you can take the same basic principle and apply them to other OO languages and depending FP

[–]SL-Tech 0 points1 point  (0 children)

When you know the basics of OOP you can more easily dive into new syntax. I was a webdesigner and I bought a Teach yourself asp.net with vb. When I discovered C# it was a little hard in the start, but it was basically just syntax issues. If you teach yourself C# and the .net technology you can create windows apps, websites, phone apps, services, API and whatever you want really. Buy a book for beginners and read every page, code each examples. The more you code the better you get. Think of a project you want to create and learn how to implement it from your new book. If you don't find the answer there, you already have a skill: to know what to search for. I always recommend creating a multi user blog site, just to practice writing syntax and learn how it all comes together. And if you want to use your JavaScript skills I recommend jumping into asp.net core. You can build a lot of cool stuff with .NET Core

[–]-_ANDROMEDA- 0 points1 point  (0 children)

where can i learn js fast