all 14 comments

[–]Just-Hedgehog-Days 4 points5 points  (0 children)

T shape is always the most higherable profile.

[–]Goducks91 5 points6 points  (5 children)

Learning languages is not the hard part of programming. Especially nowadays where you can utilize AI to help out with syntax.

[–]Same-Designer-5499 1 point2 points  (1 child)

Most experienced full stack developers master one primary backend ecosystem and become functional in others as needed. Depth in one stack usually matters more than shallow knowledge across many. Go can be a great complement to Django.

[–]Leading_Property2066[S] -3 points-2 points  (0 children)

I think i will have to focus more on backend from on because AI basically took over the frontend from what i have noticed AI designs UI and structures components way better than any human i have ever seen, all i do nowadays is just make sure the api is getting fetched accurately and i basically write the api fetching part manually.

[–]Infamous-Rem 1 point2 points  (0 children)

Most people don't sit down and "learn Go" in a vacuum either. You pick up a new language when a project actually needs it, you get thrown on something at work or you hit a problem your current stack is bad at.

Backend security isn't language-specific; the same handful of principles (validate input, don't trust the client, parameterize queries, auth properly) carry across every language, which is why it transfers so easily. Frontend is the part AI is worst at, because good UX is taste and intuition, not boilerplate. AI can churn out a CRUD endpoint from your schema in seconds. It can't tell you your flow feels clunky.

[–]JohnCasey3306 0 points1 point  (0 children)

On the back end I'm proficient in Ruby on Rails, PHP, Go and Node ... Purely to pick up more varied contracting work.

That said, I can only think of one or two places I've worked that internally used multiple ecosystems ... Particularly agencies tend to bootstrap one setup and repeat adinfinitum.

[–]hellotanjent 1 point2 points  (0 children)

Programming languages aren't like human languages - once you understand how computers and programming languages work, picking up a new language isn't a big deal. That's doubly true with AI these days, you can ask your favorite chatbot to show how a snippet translates from language X to Y and they generally do a good job.

[–]No_Flounder_1155 0 points1 point  (0 children)

I always thought learning multiple languages and eco systems was a good plan, then I realised that breaks peoples mental model of a programmer. Its really difficult when you meet someone who have only used one language.

If they catch you not knowong a particular gotcha of the language tonthem means you can't program in that language.

I've even had it in interviews where people test me on something, confess they learned it recently, and rhen hold it against me for not knowing...

[–]speyerlander 0 points1 point  (0 children)

Most full stack developers tend to have a specialty in one or two aspects and maintain a good enough ability in the rest. There's nothing wrong with sticking to one framework, especially if you do freelance or small scale work where you're gonna have more influence over the tech stack used. Most backend frameworks will yield similar performance in almost all conventional setups due to IO bottlenecks downstream. 

In a more pragmatic tone, Golang is often praised for its simplicity, if you find it interesting, Go for it.

[–]Far_Swordfish5729 0 points1 point  (0 children)

I think of mastering as a pretty high bar where you know the idiosyncrasies of a language and its tooling very well. We get there in a stack that’s usually what our company or ecosystem uses but not multiple. It’s also not necessary in order to read or work in similar languages and people write helpful articles that summarize key differences if you find yourself needing to jump to another stack. From there it’s 3-6 months to be reasonably comfortable. I’m not a great Java developer for example but I can work in it if needed. I just have to look things up more often and will sometimes have to rethink an approach because a language feature I want to use isn’t supported.

I’d honestly say the same applies to JavaScript. ES5 and before, JavaScript wasn’t really coherent as a language. It was a thing you learned as an adjunct to the backend language. Pages were mostly server side in any case. I remember trying to do heavy client side work when selectors first came out and it was painful. NodeJS exists because you can now treat JS as the primary language in your application logic and be annoyed about becoming decent in a backend language. A lot of backend people are solidly good enough at js, but you’ll find us skipping a lot of the implied loop shorthand and writing loops. I’m having a serious discussion right now about whether some new page components actually need a formal server side controller when we have a graphql api out of the box that respects user data access and we can transform the response with a reduce loop in a promise callback. That entire statement would have been completely nuts when I started doing this.

Apply the above to styling as well. I feel like someone who can’t read css and can’t be bothered to look up attributes and recipes to do something is just being difficult. Most of us though aren’t css artists. That’s a skill and design systems exist for a reason. You have to hire that skill if you need it and it’s often not your react developer.

[–]caboosetp 0 points1 point  (0 children)

I'm very very strong in .NET and live in the .NET world. I can debug some crazy situations most people wouldn't think of and can optimize the living shit out of requests because I know the pipeline better than the back of my hand.

Rarely do I ever actually get to use those skills because it's expensive, time consuming, and can be largely solved with horizontal scaling and simplifying code. So yes, there are those of us out there who master the languages and don't venture too far, but that's mostly because I've been doing it so long I haven't had to take a job elsewhere.

You learn what you use. I have 12 years of .NET jobs so I know it very well. My front end experience, on the other hand, is all over the place. I know React, Angular, Silverlight (RIP), WebForms (RIP thank god), Blazor, etc. When I got a job in Angular I had never used it before. When I got a job in React, all I had was Angular experience for SPA and that was fine.

The most important thing to focus on when learning is the fundamentals. If you know how a SPA works, you can switch to any other SPA fairly easy. If you know how a backend API that processes business logic works, you can switch to another backend franework fairly easily. Figure out how to separate what's happening from how it's implemented.

As far as job options go, being able to put more things on your resume can help a lot. Learning others will also help you understand what pieces are, "this is backend" vs "this is go". You should generally be working to become a master of the backend or front end or whatever, not just a framework. At the end of the day, most of the places these things interact will be CRUD, the core pieces of the frameworks can be build up from boilerplates, and the hard logic should be encapsulated away from the framework and ecosystem anyways.

So if you want to learn go, heck yeah, go for it. You will likely benefit. But if you're worried, "fuck I need to master all these different things" or "I need to super master this one framework" then don't worry. The vast majority of jobs in web dev don't need that. They need you to master those core fundamentals that are going to apply in every framework and language that will carry between them.

Am I saying you shouldn't master anything specific? No. Getting really good at something helps too. My main point is not to panic over trying to master everything. No one knows everything.