How to Become a Better Software Developer

DevTuneUp
5 min readJan 7, 2021

--

December 18, 2020 by Jordan

How can I help you accelerate you software engineering journey? Whether you want to learn how to work on a software engineering team or you want to break into the field, you have come to the right place. After reading this article, hopefully you will take some of my experiences and learn some tips of how to become a better software developer.

Software programming is a rapidly growing field. I have read that the field is growing 22% from 2019 to 2029. What a better time to get in the field. You have made an awesome choice to embark on you software engineering journey.

I have been going to an online coding school for the past year and I have done some really cool coding projects. I’ve been particularly focused on JavaScript, React, and Node. It has been a really great experience all this time. I felt like I’ve gone from zero to hero in the course of the year.

Traditional education just doesn’t give you the practical knowledge that an online coding school does. Universities give you more theoretical knowledge than practical knowledge. On the flip side, a boot camp or online coding school, gives you more practical knowledge than theoretical knowledge. The coding school I went to, Lambda School, aims to bridge the gap between theoretical knowledge and practical knowledge.

I have done a lot of research on boot camps and online coding schools and they all lack the same thing, they don’t really teach you computer science, but Lambda does. I would like to tell you about a little project I worked on at the end of my education at Lambda School.

Project Overview

I was on a team of 3 other Web Developers and 2 UX Designers. We made a platform that simulated a market place where businesses can sign up for an account and then post items for sale.

Initially, I worked on the back end in Node getting the API working. I worked very closely with another developer that was designing the database schema. Although, I got all the API endpoints working correctly when I plugged them into Postman, it would’ve been better if we initially automated the tests, that way if anything changed we wouldn’t take forever to dig into the code to find the bug.

When that was completed, I helped out on the front end side of things. I really like the front end because it is very visual and I love visual things.

The front end was done in React. For our styling library we used a different library then what I was familiar with. I have never heard of Ant Design before. However, I was able to dive into the docs and make a lot of the components functional.

Breaking Down Problems

My team used an online organizational tool called Trello. This is used to write the user stories, which is what the user wants to be able to do in the app. The developer gets assigned a user story and has to problem solve in their coding environment about how to best solve that problem. Trello is like a giant to do list. We use Trello so the developers don’t unintentionally work on something that another developer is working on.

I have pasted an example of the Trello card I was working on for the front end. This Trello card solves the user story that has the specific business posting a product to sell. I had to design the components around the wire frames that the UX Designer gave me.

Although, we are not done with the styling yet, we are almost done with the first release of this product.

Learning Points

This part can be boring, but planning is a necessary part of the process especially when you have a UX Designer or any other members besides Web Developers. If everyone just jumped into the code to start off with, no one would be on the same page, and in the end the whole product would be a disaster.

Communication

Communication is another part that is necessary. When you get a job, employers really value you communication skills. Do you ask for help when you’re stuck? If you spend the whole day on a problem and you don’t ask for help, a lot of Project Managers will probably get mad. This is very expensive and not efficient at all. However, the developer has to answer the question: Where do you draw the line between asking for help and asking for too much help?

Fortunately, our team communication was really good. We communicated via Slack and Zoom, and didn’t really have any problems with each other. Although when problems arise, it is important to get everyone’s perspective on the issue.

With a TEAM, Together Everyone Achieves More.

Technical Problems

We also faced technical problems on the team. Have you ever faced any of those? They sure are annoying. We had problems with one of our endpoints, it was a PUT endpoint. I was testing with Postman and I accidentally changed the ID in one of the fields of the users in the production database. Oops.

But as a team we tackled this together, we could log into the production application with the other users, but not with one user. Unfortunately, we spent some time working together as a team to figure this and correct it, but eventually we found it and reseeded the database.

That was quite a learning experience for out backend team. This could have been avoided with a test database and writing end-to-end testing using Supertest. I guess I need to brush on testing code, especially API’s. This is an important skill for any developer to add.

Our Final Product

So far in our project, businesses can log in and list products for sale. The products are stored using a postgres database. So far you can not add a new item, but that for a future release.

For the future of the product, the ability for businesses to add products is a must. Businesses would be able to list the product immediately for users to see and the product will be saved into a database. They can also save a product as a draft so that they can edit later. Closer to the full completion of the product, buyers would be able to log in and purchase products using the Stripe API.

Some potential technical challenges would be automating the testing.

This project has been a learning experience for me and taught me that in order to work on a team, you need to be organized by using Trello, so you do not work on code someone else is working on.

Some feedback I have received is that I need to be very descriptive with making my variable names and destructure props so that you know what the data is. I have taken that feedback and am continuously improving by using descriptive variable names and destructuring my props.

I would say that this project helped me understand what it is like working on a team in the professional environment.

--

--

DevTuneUp

Helping aspiring developers start a career in software development. Sharing insights, coding tips, educational recommendations and latest trends.