Codementor Events

MY SOFTWARE DEVELOPER TOOLS

Published May 06, 2021
MY SOFTWARE DEVELOPER TOOLS

During my short time as a programmer, I have picked up some things along the way; either from a Youtube video, blog post or a colleague. I am glad I did as they have helped me in no small way. I hope you find one or more of these helpful or just plain fun to adopt!

IDE(Integrated Development Environment)

According to wikipedia, ...An IDE normally consists of at least a source code editor, build automation tools and a debugger. When starting out, code editors like Notepad, Notepad++ and Sublime Text sufficed to write my codes since I was starting out with HTML and CSS. However, as my codes began to include functions, loops, conditions, I was slowed down.

I used to love Sublime Text until I met VS Code. We were engaged and married before I knew it! As humans, mistakes are inevitable and a debugger helps to identify the bugs in your codes. With VS Code, I get to write and debug my codes in the same space!

There are many good IDEs out there like Eclipse and PyCharm but I'm kind of stuck with VS Code since I already said, "I do."
icons.gif
I love that it has its Integrated terminal that auto activates my virtual environment!

I enjoy the linter( a linter, is a static code analysis tool used to flag programming errors, bugs, stylistic errors and suspicious constructs-wikipedia). You know, as a Python/Django developer, I always have something to import, so, the linting highlights when the import has issues even before I run python manage.py runserver!

Also, I get to make commits to github without leaving my IDE.

I recently tried Spyder and I was wowed by its functionalities! ...I fear that an affair is brewing; VS Code watch your back πŸ˜‰
Enough with my romance with IDEs!

Comments

The need to document your code cannot be overemphasized. Documentation either explains how the software operates or how to use it-wikipedia.

I once developed a software that needed a new feature a month later. I went through the codes and was confused; I couldn't remember how the logic was supposed to work! I had to read through many lines of codes just to add a feature. I spent a week on something that should have taken me, at most, 1 hour!

Another thing to note is your naming convention. I was told that: Expressive names reduces the number of comments your codes need. Using clear, expressive, descriptive names tells, almost at a glance, what a function does. For a function that gets the sum of the squares of numbers, def sum_of_squares(num1, num2):pass
seems clearer, in my opinion, than def sumsq(a, b):pass
As a friend once said: Document your codes and your future self will thank you.

Version Control

Git is software for tracking changes in any set of files, usually used for coordinating work among programmers collaboratively developing source code during software development. Its goals include speed, data integrity, and support for distributed, non-linear workflows (thousands of parallel branches running on different systems)-wikipedia.

I once created a views.py file for a Django application. Then I thought the logic could follow a better route that I was not so certain of, so, I renamed it "oldviews.py" and created a new views.py. Then I thought of a new idea and created a new views.py...before I knew it, I had variations of views.py!
Git keeps track of these changes and saves me loads of **views.py

When working with other developers, git makes collaboration fast and fun. Farhana Khan's image explains how it works succinctly.
git.png

Search Engines, Discussion Platforms, Blogs And Communities

Google is an awesome buddy! I think that it is the best invention yet! You would be surprised to find that the solution to a bug that had caused you sleepless nights wass sitting right there just waiting for you to use your keyboard!

There are so many skills to learn and if one has to remember each use case or library documentation word for word before moving on to the next technology, I think that there will be a dearth of software developers. Seriously, not all of can regurgitate pages of a book after one glance(no offense to Mike Ross)!

My go-to for quick reference: stack overflow, w3schools.

For stack overflow, it always seems like someone already went through what I am going through. Even when nobody as asked my question previously, i only need to rephrase the question and there, someone has asked before!

With w3schools, I get to test the code before including it in my code editor.

I also use realpython, simpleisbetterthancomplex, freecodecamp tutorials

Time Tracker

A time-tracker as the name implies tracks the use of your time. I used to wonder where all my time went by the time the day was over because I could not explain what I did with my time. After I started using TopTracker, I could tell what jobs consumed time and it helped me charged appropriately as a freelancer.

A time tracker prepares you for remote roles as you learn to account for your work hours. With the future of work becoming remote, firms are adopting trackers to ensure productivity of remote workers.

Even if you choose enterprenuership, it keeps you accountable to yourself. It helps you determine whether you are working according to your priorities.

Coding challenges

Taking part in coding challenges sharpens my mind especially with respect to algorithms and data structures.

I enjoy hackerrank because of the abundance of challenges of various levels at a glance.

Codewars, however, won me over because I have easy access to other programmers' codes and I get to see alternative and, many times, better ways to solve the same problem.

These challenges thrill me; they shape the way I think in terms of automating solutions to problems. Seeing codes and using codes to actually DO things is really beautiful!

Curiosity

I think it helps to be curious, find out about other languages, libraries, technologies and alternatives. Sometimes, the technology I am using may not be well equipped to solve the task at hand. I'm not saying that one should learn all the available technologies - except if you can. I'm just saying that some technologies are ridiculously easy to learn and wield so much power that discovering them after so much hardwork could literally make one cry!
200.gif

Notes

I work on multiple projects, and I always need to keep my thoughts under control. My mind is rarely blank and because I take my work to heart, the algorithm for a module for an application jumps at me while I am doing something else. Even when starting out development of an application, I may need to take notes and refer to them from time to time.

Sometimes, I use my code editor to take notes. For portability, I used to use ColorNote and Google Keep Right now, I use Notion. Notion has both a mobile and web version, as well as, but not limited to the following features:
1. Collaboration (not free)
2. Setting timelines for projects
3. Categorizing tasks and projects
4. Text markdown to enable me write codes on my phone
5. Setting projects' priority, etc

An old Chinese proverb says that: β€œthe faintest ink is more powerful than the strongest memory.”

Of course, there are more tools that can make software development easier and fun. Please suggest other tools that has helped you on your programming journey; I would love to add to my arsenal.

Cover Photo by Todd Quackenbush
Other credits: giphy, vscode

Discover and read more posts from Olaide Alaka Afolayan
get started
post commentsBe the first to share your opinion
Show more replies