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

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

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.

Disclosure of Material Connection: Some of the links in the post above are "affiliate links." This means if you click on the link and purchase the item, I will receive an affiliate commission. Regardless, I only recommend products or services I use personally and believe will add value to my readers. I am disclosing this in accordance with the Federal Trade Commission's 16 CFR, Part 255: "Guides Concerning the Use of Endorsements and Testimonials in Advertising."

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值