Hacker News new | past | comments | ask | show | jobs | submit login

While this does make sense, as a junior developer what I'm trying to grapple with is how fast our tools (specifically the "standard" languages) change. I can become a master in Laravel and PHP after years of work, but by the time I'm at that point the world will have moved on. My capabilities within my skillset will be impressive yes, but will it help me in the new industry environment?

I think it's that fast-paced nature (and partially scaring newer devs into trying to keep up) that causes many of us to try and learn broadly rather than deeply. For an analogy, it's like investing in an index fund and being diversified (and thus having more overall potential for gains and less risk of loss) than a single stock.

Disclaimer: I'm still fairly new to the industry for all intents and purposes so I welcome opinions on this.




The best way to circumvent this feeling is to learn how programming works rather than how PHP and Laravel work. If you know what a web server is, how to scale it, know a little about web security, and how to write OOP well you're in very good shape. Don't learn the intricacies of Laravel, you can pick those up on the job. Learn enough about PHP to be able to identify what goes into a programming language and to be able to look at other languages and tell how they are different and the same past one using the word "const" instead of "let".


Agreed, though I would add that in terms of being a better programmer rather then Laravel Developer, you have to get really good at deconstructing frameworks. Essentially you have to understand all these tools and frameworks are just normal code that have been bundled together to give you some magic methods. If you can deep dive into frameworks with ease and understand what they do then you'll be successful.


Or become an ES6 ninja and use both "const" and "let";). On a more serious note, it's strange how has "let" became an identifier for mutable data in js, while eg. ML uses it for the opposite if I recall properly.


Well, ML doesn't explicitly use it for immutable data. It's just how you declare variables. It does happen that most variables are immutable though.


I think it's less about becoming mastery of tools. I don't think that is what's being advocated, and at least not my interpretation.

In your case, assuming that your field is "web development", this means getting deep mastery in web development. You know which language and framework you want to use in the backend for low traffic websites, and you know what you want to use for high concurrency websites. You know very well the relative strengths of PHP / Laravel and (say) Elixir / Phoenix.

If more on the frontend side of things, you feel comfortable enough to switch between various frameworks with a short learning curve, and you understand _why_ new frameworks and new ideas around how to build webapps are appearing. You also know when to use vanilla-js and when to use react. When to use ES6, TypeScript and Clojurescript

My interpretation of what might be counter-productive to mastery, is to get into webdev today, data science two years from now, distributed systems another 2 years, and then after that desktop applications etc whatever, based on the current trend. A careful judgement call needs to be made carefully when switching domains.

Ultimately every domain is both very wide and very deep, and it's hard enough to get mastery in one, let alone jump into a new field that your peers have already been doing since the beginning of their careers.


You should really not cater to recruiters only looking for x years of experience in keywords y and z

Working on many different technologies is daunting at the beginning but in time you’ll see that even if the specific invocations change, the core concepts of programming from responding to events to handling data changes are quite stable and comparable moving from one environment to another.

Sure it’ll be harder then to find work than the generic guy who lucked out on the resume keyword lottery, but wast domain knowledge will open up quite many doors outside basic programmariate

The real issue then becomes how to put broad knowledge into the resume and how to estabilish oneself as knowledgeable of many instead of expert of one, the latter being far easier via blogs, articles etc.


> You should really not cater to recruiters only looking for x years of experience in keywords y and z

Well, I don't think anybody wants to, but after a point, it becomes a sad reality.


For your comment about Laravel and PHP, I think it is a valuable exercise to complete a project using a framework like Laravel and PHP.

Realize that the people who contribute to Laravel and to PHP are trying to solve real problems, and there implement patterns used in other frameworks and languages.

Without deep-diving some, you won't be able to recognize those patterns in other frameworks and languages.

For instance, I did a very brief stint with Ruby on Rails. I've also tried out Django with Python, Laravel with PHP, Phoenix with Elixir, and Caliburn with C#.

In each of these cases, I became more familiar with common patterns (Model-View-Whatever, Dependency Injection), and how each framework attempted to solve the problem.

So to answer your question: yes, "mastering" a technology can transfer to another similar technology. So don't be afraid to dig in, best of luck!




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: