zoukankan      html  css  js  c++  java
  • 4 Things I Wish I Would Have Known When I Started My Software Development Career【当我最开始从事软件工程师的时候我希望我知道的四件事】

    英文原文:http://simpleprogrammer.com/2013/08/19/software-development-career/

     

    My software development career began about 15 years ago.

    大约15年前,我开始从事软件开发。

    But only in about the last 5 years did I really start to see a large boost in my software development career.

    但是只有在最近过去的5年里我的职业生涯才开始有一个很大的提升。

    Here are some of the things I wish I would have known when I got started in the software development industry; things that would have made me more successful, much earlier, if I would have known them.

    以下是当我开始在软件开发行业做的时候我如果能早些知道它们我就可以更快更早的成功的一些事情(经验吧)

    There is no “right way” in software development

    在软件开发行业没有捷径可走

    I wasted a large amount of time, both in studying and arguing, early on in my career, falsely believing there was an absolute “right way” for many aspects of software development.

    It turns out that just about everything I once thought was correct about software development at some point turned out to be wrong.

    But more importantly, I found that very few things were black and white.  Almost every decision when writing code and developing software is based on the current circumstances.

    I’ve talked before about how the religious adoption of a technology can be harmful to software developers, but this topic goes beyond just a technology.

    It is also true that no best practice is universal.  Even highly charged topics like whether or not to unit test or whether agile or waterfall methodologies are best, do not have straightforward one-is-always-right answers.

    In my career, I’ve wasted plenty of time on the “right way” road that led to nowhere instead of taking the “pragmatic” (practical) road, which would have carried me much further.

    Reading a book cover-to-cover is not the best way to learn

    一页接着一页阅读一本书不是学习的最佳方法

    When I first started wanting to grow my knowledge of programming and different technologies, I spent too much time reading technical books about a specific technology cover to cover.

    reading book thumb 4 Things I Wish I Would Have Known When I Started My Software Development Career

    There is nothing wrong with reading books, but often the choice of what book to read and what parts of it to read are very important.

    For example, I remember reading a very large book on programming with Visual C++.  (I’m pretty sure it was an earlier version of this book.)  Anyway, the book was a good book with lots of information, but reading it cover to cover was not the best approach to learning Visual C++.

    I would have learned and retained a lot more by skimming over the chapters of the book to get a broad understanding of what there was to know about Visual C++, then figuring out what things were most important to learn first.

    I would have had much more success by sitting down and actually practicing the basics by trying to actually build something than just reading or going through examples in the book.  You don’t really learn a technology until you’ve solved real problems with it.

    Learning particular technologies in-depth is a waste of time

    深度学习某一部分技术就是浪费时间

    Not only did I waste time by reading books cover to cover, but I also often chose to read the wrong books.

    I had mistakenly believed that learning a particular technology inside-out would be a good way to advance my career.

    I spent too much time reading books about very specific technologies like ASP.NET or Hibernate instead of reading more books like “Code Complete,”“Clean Code,” and “Agile Principles, Patterns And Practices in C#.” (All of these books, by the way, I recommend that you read, if you haven’t already.)

    While it is important to know about the technology you are using, it isn’t important to be an absolute expert in that particular technology.  There isn’t much benefit to knowing the exact API call to make when you can just easily look it up when you need it.

    Too many technologies that I spent a good amount of time learning about in depth, ended up either dying out or being technologies that I eventually abandoned myself.  Most of the knowledge about those specific technologies ended up representing a big waste of time.

     

    I found that it was important to become an expert at whatever programming language that I was using at the time, because expertise in a particular programming language will usually last you a pretty long time; I definitely would have still spent time learning in depth about C++, C# and Java, but, I perhaps, spent a little too much time learning all the intricacies of C++, which isn’t benefiting me much now.

    Community is extremely important in your software development career

    在你的职业生涯中社区论坛非常重要

    Early in my career, I made the mistake of not really reaching out to the community for help and to provide help to others.community thumb 4 Things I Wish I Would Have Known When I Started My Software Development Career

    I was always good about helping my coworkers and being social at the various jobs I held, but I never really reached much beyond my company.

    I spent a large amount of time trying to make an investment in my career at a particular company at the expense of making an investment of my time in the software development communities that I was involved in.

    I spent lots of time creating internal presentations on technologies or best practices that could have been spent creating content and material that could have served the community as a whole, as well as brought me recognition at my job.

    I also made the mistake of not thinking that I had something valuable to contribute.

    I talk to many beginning software developers now and sometimes I think they have much more to contribute to the community than us software developers that have been in the field for a long time, because they understand better the issues that other beginners are struggling with.

    If I could do it over again, I would have made sure to be much more involved in conferences and user groups earlier in my career.  I would have started my blog much earlier and I would have used much of my learning time to create projects and resources that would be able to help others rather than just reading a book.

    Always have a side project

    总得 有一个业余涉及的项目(此处一直找不到准确的词)

    Perhaps the biggest change I would have made that would have impacted my career the most would have been to cut out all the TV watching, Everquest and World of Warcraft playing I did earlier in my life and replace that time with work on a side project.

    I’ve wasted a pretty sizable amount of time in my life doing things that were enjoyable, but didn’t produce any long term benefit for my life.

    About 3-4 years ago, I pretty much cut out watching TV completely and now I hardly ever watch movies either.  TV and most movies are just a huge waste of time that you could be using to do something useful.  The same goes for video games for the most part, but at least with video games you are actively doing something not just absorbing useless information.

    I’ll always love to play video games and I don’t think I’ll ever stop, but I do wish I would have spent a good deal of the time I spent playing video games and watching TV on a side project instead.

    Sadly, the first real side project I actually took on was only about 3 years ago when I started creating my first Android application.

    When you are working for someone else, it is really important to spend time working for yourself as well, otherwise you are building someone else’s empire while neglecting your own.

    Not only did I learn a huge amount from the side projects I have taken on in the last few years, but I have benefited greatly from them.  In fact, one of those side projects, creating Pluralsight courses, is something I am doing pretty much full time now.

    Putting everything I learned together

    把所学的知识结合起来

    These are just a few of the things that I wish I had known when I first started my software development career, but there are many more and lots of other things that I did do right from the beginning.

    I’m actually working on a top secret project to put all this information together to help developers boost their career and learn to market themselves.

    If you want to be the first to be notified when this project gets officially launched, sign up here, and I’ll be sure to let you know.

    What about you?

    What are some of the things you wish you would have known when you started your software development career?  Let me know in the comments below.

  • 相关阅读:
    HDU 4691
    cin和scanf的速度差别
    一点点webservice的小知识
    Geetest 极验验证 验证图片拼图
    web api post传一个参数时 值永远是null
    关于支付宝支付的
    发布网站后只能在服务器上访问 外网访问不了??
    sidePagination: "server"和responseHandler: responseHandler
    .net 找回密码的第一步 第二步 第三步的进程条
    关于设置一个全局只读变量来实现验证
  • 原文地址:https://www.cnblogs.com/m-xy/p/3269796.html
Copyright © 2011-2022 走看看