亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

The 4 Most Important Skills for a Software D

系統 2047 0

With the vast array of technology, language and platform choices available today, it can be very difficult to figure out where to best invest time in training your skills as a software developer.

I’m often asked advice on how to be a better programmer.

Most often the question someone asks is based on? whether or not they should invest their time in a particular programming language or technology versus another.

I’ve been giving this quite a bit of thought lately and I’ve come up with what I think are the most important and timeless skills that a software developer can attain which will give them the best career opportunities and make them the most effective.

Skill 1: Solving Problems

I’ve talked about the need to learn how to solve problems before and I’ve even given some steps of how to learn to solve problems, because I believe this skill is critical to any software developer.

Software development is 100% about solving problems.

Without problems there wouldn’t be a need for software.

All software is designed to solve some user problem and within that general solution is a wide array of smaller problems that make it up.

It really doesn’t matter what programming language or technology you use, if you can’t solve problems, you won’t be very good at developing software.

It is amazing how bad most developers are at solving problems.

I constantly hear complaints about job interviews that are too hard because they ask the developer to solve some difficult problem.

I’ve talked about? why hard interviews are good ?and part of the reason is because they test a developer’s ability to solve problems.

I know that many developers still disagree with me about this point and don’t see why a site like TopCoder would? improve their development skills ?so much, but I know from personal experience that it was the practice of solving problems on TopCoder that was the turning point in my career.

Think about a carpenter.? If you want be a successful carpenter, you should probably be good at cutting wood.? You should probably have practiced doing all kinds of cuts and using many different tools to cut wood.

It doesn’t matter how many years experience in carpentry you have had or how well you can design furniture or cabinetry if every time you try to cut wood you struggle with making the cuts.

Cutting wood is a base skill of carpentry, just like problem solving is the base skill of software development.

Skill 2: Teaching Yourself

There is probably no more important skill in life than? learning to learn .

This skill is especially important in software development, because no field I know of changes more rapidly than software development.

You can’t know everything about everything.? You can’t even really invest the time it takes to be a master of one particular framework or technology—things are moving way too fast!

Instead you need the ability to quickly acquire the knowledge you need for the task at hand.

If you truly want to have a skill that will propel you through your software development career, learn how to teach yourself.

The only way to develop this skill is to put it into use.? Go out and learn a new programming language or technology, even if you think you’ll never use it.? You’ll be surprised? how quickly you may be able to pick it up ?because of the foundation you will already have in what you know.

If you can quickly adapt to the rapidly changing software development market and technologies and platforms associated with it, you will have skills that will always be in demand.

Although I am a bit skeptical of some of Tim Ferris’s claims, he has an excellent book called the? 4-Hour Chef ?which has some great techniques about how to learn things rapidly.? (I was wanting to write a book about this very subject.)

Skill 3: Naming

When people ask me what I do all day, I mostly say “read things other people name and name things.”

Ok, no one really asks me that and I wouldn’t really answer it that way, but I certainly could.

Software development is all about describing the metaphysical.? Most of what we are building can’t be seen.?

We have to construct in our minds an entire world with authorization managers taking authorization requests and spitting out authorization response alongside user repositories using user factories to assemble new users.

Every time you are writing code you are naming things. ? When you read code that you or someone else has written, you are gaining most of your understanding about that code from the names of things in that code.

Most of the time I can accurately predict a developer’s skill level by looking at how they have named methods, variables and classes in code they have written.

A developer who lacks the ability to give good names to concepts and data in their code is like a mute translator. ? It doesn’t matter if you can understand something, if you can’t adequately explain it, the moment it leaves your head it is gone.

The best way to improve this skill is to always put it into practice.? I’ll often rename things in code I am just reading to get an understanding.? As I start to understand what a method is doing, I’ll change the name to match that understanding.? I’ll do this while I am reading the code, not even making any logic changes to it.

The more you focus on giving good names to things, the better at it you will become.

This is also the most visible thing about your code.? It is hard to know if your code is correct or efficient by looking at it, but if I read it and can understand it, I am going to assume you know what you are doing.

Skill 4: Dealing with People

I list this as last, but in many cases you could say it is the first or most important skill.

Everywhere you go there are people.

Unless you work alone and develop software just for yourself, other people are going to influence your career as a software developer.

I’ve talked about why? you might not want to criticize someone else ?before, but there is much more to dealing with people than not pissing them off.

I always go back to the famous book by Dale Carnegie,? “How to Win Friends and Influence People,” because this book is so important in learning how to be a successful human being.

I’ve said it before, but if you want to develop people skills, read this book!

The basic problem is that humans are not logical creatures , we are emotional ones.? Sure, we like to pride ourselves on our ability to reason, but the reality is that most decisions we make are more influenced by emotion than reason.

What this means for you as a software developer is that unless you can effectively deal with other developers, managers, and even customers, you will constantly face trouble despite how good your ideas are or how valuable your skills are.

Being active and involved in the software development community in general can also help you immensely in your career.? It is not just about networking, but getting your name out there and building good Karma .

Doing this successfully hinges directly on your ability to deal with people.? (Want to take a big shortcut in learning how to deal with people?? It’s simple.? Be nice!)

What about practical skills?

Notice I didn’t include anything in my list about a particular technology or even as broad a skill as web development or mobile development?

It is certainly important to have a solid foundation in a couple of technology areas, but what those areas are is not nearly as important as the 4 skills I mention above.

If you can solve problems, learn things quickly, name things well and deal with people, you will have a much greater level of success in the long run than you will in specializing in any particular technology.

With that said, of course it is important to thoroughly learn a programming language or two and to have a general area of specialization, but as long as you don’t go too far off the beaten path with those choices and you focus on these 4 important skills, you will be ok.? ( You could even learn C++ )

Published at DZone with permission of? John Sonmez , author and DZone MVB. ( source )

The 4 Most Important Skills for a Software Developer


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 丁香狠狠色婷婷久久综合 | 欧美在线成人午夜网站 | 久久久久香蕉视频 | 久草在线这里只有精品 | 2019中文字幕视频 | 成年人视频在线免费 | 日本成本人观看免费视频fc2 | 国产福利午夜自产拍视频在线 | 四虎影院com| 激情五月社区 | riav久久中文一区二区 | 在线观看日本免费视频大片一区 | 91精品免费国产高清在线 | 夜夜资源| 免费四虎永久在线精品 | 色综合久久久久 | 亚洲欧美日韩中字综合 | 国产麻豆视频在线看网站 | 一级片免费视频 | 欧美一区二区在线免费观看 | 午夜在线网站 | 夜夜嘿视频免费看 | 亚洲国产视频在线观看 | 九九热综合 | 日韩精品区 | 久久riav.com | 全免费一级午夜毛片 | 999这里只有精品 | 中文字幕欧美日韩 | 国产精品一区二区资源 | 久操免费在线 | 日产国产精品久久久久久 | 中国一级毛片在线观看 | 国产成人精品免费影视大全 | 国产h版大片在线播放 | 久久香蕉综合色一综合色88 | 亚洲视频网 | 美女在线视频观看影院免费天天看 | 羞羞在线视频 | 国产精品午夜激爽毛片 | 亚洲区一|