DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones AWS Cloud
by AWS Developer Relations
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Partner Zones
AWS Cloud
by AWS Developer Relations
Building Scalable Real-Time Apps with AstraDB and Vaadin
Register Now

Trending

  • Microservices Decoded: Unraveling the Benefits, Challenges, and Best Practices for APIs
  • How To Check IP Addresses for Known Threats and Tor Exit Node Servers in Java
  • VPN Architecture for Internal Networks
  • Mastering Time Series Analysis: Techniques, Models, and Strategies

The Route to Being a Good Software Engineer

Lieven Doclo user avatar by
Lieven Doclo
·
Dec. 14, 13 · Interview
Like (1)
Save
Tweet
Share
14.56K Views

Join the DZone community and get the full member experience.

Join For Free

In terms of tenure I still consider myself a rookie in this industry. In some aspects, I’m still an apprentice, in others competent and perhaps one or two area’s proficient (if you don’t know what I’m talking about here, this is based on something called the Dreyfus model). But in my 8 years, I’ve learned a great deal what to do and especially what not to do in order to grow professionally. Here are some of my insights.

Take control

As a starting professional, you’re still considered a novice or advanced beginner for most aspects of your job. However, you need to take control from day one and strive to become better in those aspects. You can’t expect anyone else to do it for you, so you need to take control from day one. Under no circumstances, surrender control of your career to someone else. Some companies provide a career path. You can use this path as a guide, but treat this path as something set in stone. If you feel that the route it taking you down a path you don’t want to go, take control and change directions. This also means that when you feel like your career is going nowhere and there aren’t any improvement possibilities on the horizon you need to take control and start looking for a career that provides those.

Be a group person

We’re in an industry where it’s fairly easy to ‘go solo’. Many projects start out as solo project, but only a few of those end succesfully that way. Learn to work in a group and learn to communicate to other people. You’ll learn so much more in a group than you would alone. Also, actively search for contacts that will make you a better professional. Attend conferences and talk to the people there or even better, host a presentation. Join a user group. The bigger the group of competent people around you, the more chances you have at knowledge transfer.

Get noticed

Getting feedback is extremely important in professional development. But in order to get meaningful feedback, you need to get noticed first by people with more knowledge that you have. If you live your entire professional career in a cubicle, you won’t learn much. Start writing stuff, do presentations and start working on an open source product. Just make sure the attention you’re getting is because of the right reasons: getting singled out because you crashed the production server is not the right way to get noticed.

Coach

If you follow the 2 things I mentioned above, chances are you’re already coaching someone. There’s nothing as rewarding as teaching others. It’s hard to do right and it takes a lot of skill to teach others. But not only the ones you coach will be better off, so will you. The best way to learn is by teaching others. Sounds counterintuitive, but it really is. Also, by coaching others you

Aspire to grow and learn

A wise man once said to me: the day you stop learning should be the day you die. In other words, never stop learning, especially in software development. We live in a fast paced world and you have two choices: you learn and grow or you fall behind. Read books, try out new technologies, share your experiences with your colleagues. The fun thing about learning new things is that you sometimes rediscover what your current goals are. My goals today are not what they were a couple of years ago and my path has taken me places I never thought possible just by constantly learning new things.

Embrace failure and keep moving forward

Let me assure you: you will fail sometimes. However, when you fail, the trick is not crawling up in a hole, feeling sorry for yourself. Try to find out where you went wrong and how you can learn from that experience. Don’t think too long about your failure and look ahead to the future. Good software engineers always fail at least once. From failure you learn, from success… not so much. Great engineers are hallmarked by their ability to bounce back up after one or more failures. Never be afraid to try out new things.

Write down ideas

This is one I learned this year after reading Pragmatic Thinking and Learning. I now always carry a small notebook and a ballpen or pencil. The trick is to write down an idea when you get it. Most of the time you get ideas on the worst possible moment. Writing them down enables you to defer thinking about your idea, but with the assurance you won’t lose the idea. Ideas are the bread and butter of our industry and you’ll write down a lot of useless ideas. But every now and then you’ll have a great one. Having a pen and paper at all times makes sure you won’t lose that idea.

Have a great career everyone!

Software engineer

Published at DZone with permission of Lieven Doclo, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Trending

  • Microservices Decoded: Unraveling the Benefits, Challenges, and Best Practices for APIs
  • How To Check IP Addresses for Known Threats and Tor Exit Node Servers in Java
  • VPN Architecture for Internal Networks
  • Mastering Time Series Analysis: Techniques, Models, and Strategies

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com

Let's be friends: