开发者

Is it best for multiple specialization or single specialization? [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 10 years ago.

I've noticed a lot about jobs being posted that require the applicant to know several languages or technologies. Especially I find this with web development. I don't really like this considering the point that the more you specialize in several things the less you actually know about each one. I recognize that this is good for the bottom line when you can pay one person to do many things, but is it worth it for inferior service which isn't really their fault? A good read is research like this.

It shows that the more you multitask the worse quality work you do significantly.

Here's my question. I would really like to only specialize in a few things, because I like to be good at what I do and I don't want to lie when I tell someone I can do what they want. Will being more specialized in a few things make it harder for me to find a job then if I worked in many technologies?

A s开发者_JAVA技巧econd point. My father is a DBA, he tells me that I would be shocked at the number of people who only learn enough of something to trick the employer they know it and then learn it after being hired. He then told me maybe if I needed to I should do the same. I don't like it and only want to apply at jobs I confidently know how to do. I see this as the right thing, yet I have trouble finding jobs while people who lie find them easier. Is this something I'm always going to have to deal with, will specializing more in a few things be better for me in the long run?

Interesting things I guess, just wanted to know from experienced developers. I'm 21 and specialize in html/css, javascript, and python. I also know some lisp stuff but just dabbling.

Thanks guys


Unfortunately, there are a lot of people in the tech industry that do try to just skate by. Many of them will go as far as learn enough to pass a certification exam to fill the roll they think will get them easy money. There are a lot of DBAs that fit that description, because most managers don't really know what is expected or required of a DBA.

As far as development goes, the principles are what are really important. Once you understand the concepts of OOP and other paradigms, filling a role with those understandings puts you at the same level as 80% of the market competing for the same position. There are a lot of specialists out there that do not understand the basic principles of development, and have simply filled a role long enough to claim expertise, or they took some course or accreditation program. Most times, a good generalist will be able to perform and deliver just as well as those specialists.

Granted this is based on my own experiences, and on sweeping generalizations. Most of the time it comes down to selling yourself to the ignorant management and HR people, which will be looking for the buzzwords, certifications, and degrees. It's usually not until a second interview or internal evaluation do you get to the technical individual that can truly evaluate someone's history and understanding when it comes to development work.

So, should you specialize? Well, you're going to need to in order to have practical understand of the general principles for development. So, you'll end up specializing in something. But it is more important that while you're studying the deeper parts of a specialization, to understand the general principles. Specializing, without a true understanding of the concepts will put you in the same position as the COBOL and RPG programmers of the mainframe days. You're choosing to move into a field that changes very quickly, and specialization for specialization sake will get you stuck in a dead-end job at a big boring company. The more agile your mental capabilities and understand of the development paradigms is, the more freedom you'll have to work where and when you want.


You're misapplying the word "multitask". Multitasking is trying to do multiple things at once, not using multiple languages.

I'd never hire someone that called himself a "specialist" at any language. To me, the word means nothing but "having a fatally limited range of expertise". Programming languages aren't fields with boundless levels of expertise, where a specialization will make you better than anyone else.

I also don't want to hear about a focus in any language, because learning a language isn't an accomplishment for a professional programmer; it's routine. A fluent understanding of JavaScript and its browser APIs is a few days of work--if someone overstates it, as if it's the result of hard months of training, that tells me it they're probably inexperienced.


With regards to web development: the general definition of Web Developer is someone who knows (at least) HTML, JS, probably a JS framework (like jQuery), CSS, a server side language (in your case, Python) and probably at least one server side framework (Django? I don't do any web develoment in Python). That's four or five languages right there.

That said, 99% of what you learn in a single language is applicable to another language. I do most of my work in Java and PHP, but I started learning C++ for a class this week, and within two days I was writing small OO applications. This was primarily because many of the things that PHP and Java do, they took from C++, but the same can really go for most modern languages. Were my apps production quality? Of course not, I've still got practice to do, but don't assume that just because someone is proficient in five or six languages that they'll automatically code more poorly; in fact I'd argue the opposite is probably true; you'll learn to look at things differently when using different languages, and as a result improve your code all-around.


It's obvious that employers would like employees with knowledge of multiple languages, the more the better, so the developers can be more flexible in their assignments. In my opinion, specialization in a few languages is a definite plus (if these languages are typically needed), but so is knowledge of multiple languages.

If you're specialized in python, having knowledge of OOP PHP, C# or Java (or other typical web languages) means you can easily adapt if the language is needed. If you have no knowledge of these languages, the learning curve will be substantially harder if those technologies are needed. As a web developer HTML/CSS/JavaScript is important regardless of server-side language.

The popular server-side languages are often fairly similar. If you read a few books on other languages, you will get a feel for their syntax and way of doing things, and will be able to pick up the language fairly quickly if needed.


Will being more specialized in a few things make it harder for me to find a job then if I worked in many technologies?

Is this something I'm always going to have to deal with, will specializing more in a few things be better for me in the long run?

Even in web development (and in python world in particular) there are projects which try to utilize single language for all purposes, like Pyjamas. It is based on same idea implemented in Java by Google, GWT. So there are definitely some tendencies to get rid of the mix from development.

As for finding such job, usually it depends on your ability to persuade people rather than actual knowledge. You definitely could find someone willing to use Pyjamas/GWT for the web development, for example.


You do realize how many things can be stacked together yet some people just think it is all one thing, right? For example, in my web development world there can be some MS-SQL servers in the back-end, some C# middle-tier stuff, some front-end ASP.Net also in C#, XSLT for some of the page renderrings used by Sitecore, the HTML/CSS of the pages along with some Javascript and jQuery that all comes together to be a web page that some may not see all of those skills coming together. While there may be some web developers that can stick to a single stack, I'm not sure how many of those there are really as many people just adapt to what is around them and to what employers may want them to use.

Secondly, you do realize that most places may have coding standards and practices you may not know right off the bat, right? There can be a period of adjustment while you figure out what works and doesn't work in that environment. While some practices can transition pretty easily, knowing that change is almost always right around the corner isn't necessarily a bad view to have.

You will always have to deal with a certain amount of lies and BS in the world. The only anomaly I can see would be if you worked in either academia or some research branch of Microsoft or Google where you don't experience what goes on in the real world in a sense. Someone may say they want an application that does X and you deliver that to a response of, "Well, ya know, I really wanted Y and Z in there too. Didn't you know that when I sent in the request?"

Bottom line, know what works well for you. Is it structure, specific tools, specific practices, or something else? Only you can know what works for you and it may take years to find the place that can appreciate this.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜