4 things I Wish I would has known when I Started My software development career
My Software development career began about years ago.
The last 5 years do I really start to see a large boost in my software development career.
Here is some of the things I wish I would has known when I got started in the software development industry; Things that would has made me more successful, much earlier, if I would has known them.
There is no ' right ' in software development
I wasted a large amount of time, both in studying and arguing, early on my career, falsely believing there is an Absol Ute "right-" for many aspects of software development.
It turns out this just about everything I once thought is 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 are based on the current circumstances.
I ' ve talked before about what 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 the no best practice is universal. Even highly charged topics like whether or not to unit test or whether agile or waterfall methodologies is best, does not H Ave Straightforward One-is-always-right answers.
In my career, I ' ve wasted plenty of time on the "right" road, this led to nowhere instead of taking the "pragmatic" (pr actical) road, which would have carried me much further.
Reading A book Cover-to-cover isn't the best 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.
There is nothing wrong with reading books, but often the choice of what book to read and what parts of it to read were very Important.
For example, I remember reading a very large book on programming with Visual C + +. (I ' m pretty sure it is an earlier version of the book.) Anyway, the book is a good book with lots of information, but reading it cover to cover is not the best approach to Lear Ning Visual C + +.
I would has learned and retained a lot more by skimming over the chapters of the book to get a broad understanding of WHA T there is to know about Visual C + +, then figuring out what things were most important to learn first.
I would has had much more success by sitting down and actually practicing the basics by trying to actually build somethin G 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 do 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 is a good to advance my career.
I spent too much time reading books about very specific technologies like ASP. Or Hibernate instead of reading more Boo KS like ' Code complete, ' ' Clean Code, ' and ' Agile Principles, Patterns and practices in C #. ' (all of these books, by the the-the-I, I recommend that's you-read, if you haven ' t already.)
While it's important to know on the technology you're using, it isn ' t important to be a absolute expert in this part Icular technology. There isn ' t much benefit to knowing the exact API for 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 on depth, ended up either dying out or being Techn Ologies that I eventually abandoned myself. The most of the knowledge is about those specific technologies ended up representing a big waste of time.
I found that it is important to become a expert at whatever programming language the is using at the time, because E Xpertise in a particular programming language would usually last you a pretty long time; I definitely would has 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 no really reaching out to the community for help and to provide.
I was all 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 @ a particular company at the expense of making An investment of my time in the software development communities that I were involved in.
I spent lots of time creating internal presentations on technologies or best practices that could has been spent creating Content and material that could has 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 has much to contribute to the community than US software developers that has been in the field for a long time, because they understand better the issues that OT Her beginners is struggling with.
If I could do it over again, I would has made sure to being much more involved in conferences and user groups earlier in my Career. I would have started my blog much earlier and I would has used much of my learning time to create projects and resources That would is able to help others rather than just reading a book.
Always has a side project
Perhaps the biggest change I would has made that would has impacted my career the most would has been to cut out all th E TV watching, Everquest and World of Warcraft playing I do earlier in my life and replace this time with work on a side Project.
I ' ve wasted a pretty sizable amount of time in my life doing things the 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 is just a huge waste of time that you could is using to do something useful. The same goes for video games for the most part, but at least with video games is actively doing something not just a Bsorbing 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 has 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 is only about 3 years ago when I started creating my first Android Application.
When you were working for someone else, it was really important to spend time working in yourself as well, otherwise AR E Building someone else ' s empire while neglecting your own.
Do I learn a huge amount from the side projects I had taken on the last few years, but I had benefited Grea Tly from them. In fact, one of the those side projects, creatingpluralsight courses, is something I am doing pretty much full time now.
Putting everything I learned together
These is just a few of the things that I wish I had known when I first started my software development career, but there is many more and lots of all things that I did does right from the beginning.
I ' m actually working on a top secret project to put all the information together to help developers boost their career an D learn to the market themselves.
If you want to being the first to being notified when this project gets officially launched, sign up here, and I'll be sure to l ET you know.
What's about you?
What is some of the things you wish you would has known when you started your software development career? Let me know in the comments below.
Quick side note:if You is stopping here reading this post, you is probably the kind of developer that cares about your Career. I ' m putting together a complete package full the information on what to really boost you software development Career and INC Rease your earning potential. It's only available for preorder. I ' M only going to is selling it at the this heavily discounted-a short time. I ' ll also has some exclusive interview with famous software developers like Bob Martin, Jon Skeet, and Jeff Atwood Sharin G their secrets to their success.
This is a translation. Personally feel very good, sent to the blog up.
My software development career began about 15 years ago.
But it was not until the last 5 years that I really saw its improvement.
Here are some things I'd like to know when I go into software development. If I had known these things earlier, I would have become more successful.
1. There is no "right way" in software development
In the early days of my development career, I wasted a lot of time on learning and arguing. I mistakenly believe that there is an absolute "right way" in many aspects of software development.
However, about software development, almost every thing I thought was right at the time was turned out to be wrong.
More importantly, I find that almost nothing is black or white. In the process of writing code and developing software, almost all decisions are based on a specific situation at the time.
I've talked about why faith in a technology is bad for developers, but the topic I'm talking about is more than just a technology (so narrow).
It is true that there is no common best practice. Even some highy charged topics. For example, do you want unit testing? Agile development and waterfall model which is good? These are not always the right answers.
In my career, I wasted too much time in the maze of the "Right path" (idealistic) route, rather than adopting a "pragmatic" route that would help me go farther.
2. Fine reading is not the best way to learn
When I first began to learn programming and technical knowledge, I spent too much time reading some books about specific technologies.
Reading is right, but it is important to choose what books to read and what part to read.
For example, I remember reading a very thick book about VC + +. (I'm pretty sure it's an earlier version of the book.) In any case, this book is a good book rich in content, but a page by page reading is not the best way to learn VC + +.
If I had a cursory look at the chapters of the book, get some overall understanding of VC + +, and then to understand the most important part of them, I can learn and remember more things.
If I had sat down and practiced the basics by actually doing something, rather than just reading or passing through a book, I would be more successful now. You are not really learning a technology unless you use it to solve the real problem.
3. Learning a specific technology is a waste of time
Not only did I waste time on "Fine reading", I wasted time on "reading the wrong book".
I mistakenly believe that learning a particular technology from the inside Out is a good way to drive my career.
I spent too much time reading some very specialized technical books, such as ASP. NET or hibernate, instead of reading more like the Code encyclopedia, Code cleanliness, and Agile Software Development: principles, patterns and Practices (C # Edition). (BTW, I recommend you to read all these books, if you haven't read them.) )
While it's important to understand the technology you're using, it's not important to be an absolute expert on that particular technology. Knowing the exact API calls is not much of a benefit, and you can easily find them when you need them.
I spent too much time on too much technology to learn, and in the end this technique was either dead or I later gave up. Most of the knowledge about these specific technologies represents a waste of time.
I find it important to be an expert in the specific programming language you are using, as the knowledge of programming languages will affect you for a long time. I still spend a full amount of time learning c++,c# and Java, but I might spend less time learning all the complicated details of C + +, because those details are not helping me much now.
4. In your development career, the community is extremely important!
Early in my career, I made a mistake by not going to the community for help or helping others.
I have always been happy to help my colleagues, but also very sociable in different jobs, but the scope of activities has never exceeded the company.
I spent a lot of time in my career trying to invest in a particular company but failed to invest my time in the software development community I was involved in.
I spent a lot of time doing internal presentation about technology or best practices that could have been used to create content and materials that could serve the community, while also giving me a job recognition.
I also made another mistake by thinking that I didn't have anything worthwhile to contribute.
I have talked to a lot of new developers, and sometimes I feel that they have more to contribute to the community than our "old fritters", because they understand the problems of other beginners ' egg aches.
If I could do it all over again, I would definitely be involved in meetings and user groups earlier and more in my career. I will start blogging earlier and use most of my study time to build projects and resources to help others instead of just reading.
5. Always participate in an amateur project
Probably the biggest change I've made, and the biggest impact on my career, will be to completely quit TV, endless quests and World of Warcraft (two games) and spend this part of your time on an amateur project.
I used to spend quite a bit of time doing something enjoyable, but there was no long-term interest in my life.
About 3-4 years ago, I had barely watched TV, and now I seldom watch movies. TV and most movies are just a huge waste of time that you can use to do a lot of useful things. Video games are largely the same, but at least in video games, you're actively doing things rather than passively absorbing some useless information.
I will always love to play video games, and I don't think I will stop, but I really hope that I spend a lot of time watching TV in the game on an amateur project.
Ashamed that I did the first real amateur project was about three years ago, when I started to create my first Android app.
When you're working for someone, it's important to spend time working for yourself, or you're building a kingdom for others and ignoring your kingdom.
Not only did I learn a lot from my amateur projects in recent years, but I also got a lot of benefits from it. In fact, one of them, that is, making the Pluralsight course, is what I now spend all my time doing.
English Original: 4 things I Wish I would has known when I Started My software development career
4 things I WISH I would has known when I STARTED MY software development career