How to Use Python and Folium Maps to Visualize the Coronavirus!

Hey Medium Community! Paul McBurney Jr here. I am the creator of the Coronavirus Map Real Time, a website that allows users to view confirmed COVID-19 cases and their locations! These locations are…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Housekeeping

Keeping code efficient

The further I delve into coding, my code and project files have grown increasingly complex. I’ve learned that this can all get out of hand if I don’t pay attention to organization. I first started laying out files in the beginning without any idea how they would look in the future. Because of this I’ve had to reorganize several times so I can keep track of everything. This has resulted in various unused folders, reestablishing connections with repositories, and files stuck in limbo.

I’ve learned to create practice folders for all projects not directly associated with projects or repositories. My bootcamp code retains its structure, split between courses and weeks, but all other files have been organized by subject and timeframes. Each subject also contains various personal or practice work relative to the parent folder. Before, I was creating different folders for each task, and even had them split between each source of learning. The resulted in too many folders for the same content. I decided that if my code is expected to be DRY, my organization should reflect the same principles.

My actual code has always been somewhat organized. Luckily I quickly developed a pet peeve related to code not consistently indented or structured. Because of this I generally format as I go. I don’t need any extra confusion while learning, especially derived from a lack of organization.

I use a couple of tools to make this process more efficient. VS code offers a ton of extensions to help with the process of coding. Two of these have already proven extremely beneficial:

With formatting issues limited, the process of beginning a new project has become clearer and more efficient. Projects will only become more complex moving forward, so following an already established structure helps. I generally begin with physical white boarding / writing in pseudo-code to get an idea of what the heck I’m going to do.

I then create the skeleton — I create any necessary files / packages, connect them, and enter boilerplate so I can focus on building the project foundation. Assignments I complete in class generally include a variable/function declaration, empty elements, or a description followed by ‘//your code here.’ I still do this on my own on top of any boilerplate. This way, as I delve into the intricacies of a project I already have an idea what other tools I will have available and I won’t forget to complete thorough code. It also provides my bearings when I get lost of the storm. Finally, I move through my project each block at a time to ensure each section is complete. This keeps me confident I am not missing anything.

This process resembles a for-loop. I first iterate over the project building the skeleton. I then declare the major parts and connections between the bones. Then, on the next iteration, I add the meat and muscle each section at a time with an understanding of what other parts I’ll need to work with. Finally I add the skin. Any appearances and final connections are easy to implement with the systems all in place. This generally keeps me from getting lost in the code.

It also helps me to find solutions to problems more efficiently. I usually first revisit my whiteboard to remind myself what goals I have and what steps I’d like to take. I can often solve problems by going back and considering what ways I could achieve that goal in general, and apply it to the code. If I get stuck, however, I generally start researching in two places-

I’ve found this process solves a majority of my problems by step 2 or 3. Increasingly I find that this process yields solutions closer to step 1 or 2 as I get better at researching issues I’m having.

I use a variety of tools to improve at coding, but many have no relation to coding. My journey so far has improved critical thinking skills. Using algorithms and code to solve problems, even white boarding training, has improved skills solving problems in general. I use several tools related specifically to this. It has improved my coding skills, but these skills related to solving any problem in life.

As mentioned previously this skillset also requires efficient organization — within code, externally regarding file structure, and with time as well. One of the largest benefits I expected in a coding bootcamp was improved time management and organization skills. I experienced the same two-way impact here as well. Learning to code has forced me to manage time better in other areas of my life. Managing my time better in general has also improved my ability to succeed in class.

This industry is unique in that success does not relate only to an ability to code but also many other life skills. From problem-solving to organization to a simple inability to get things done coding has had a comprehensive positive impact on my life.

Visual Studio Code offers many tools and extensions that will help you craft the best development environment for any coder, particularly related to the individual’s needs. Starting out I would have sworn i preferred none other than Sublime Text. One of my online courses introduced VSC and I’ve never looked back. Coding can be hard and time consuming, not that I’d have it any other way. However, small efficiencies offered in VSC let me focus on what matters- code. I’ve already mentioned organization tools like ‘Prettier Now’ and ‘Bracket pair colorizer 2.’ This doesn’t scratch the surface. VSC offers a plethora of extensions and control. The file management system is a huge plus for me; the ability to navigate and manage files directly from the editor interface gets me where I need to be much faster. Debugging tools offer a learning resource by debugging efficiently and learning where my mistakes come from. As if the productivity tools weren’t enough, I can apply any theme I want so the actual look of the environment matches my own preferences.

Still, I’m always looking for new or better tools to become a better developer. This industry evolves rapidly, and that will not change. It is imperative to stay up-to-date with industry changes if you want to become (and remain) competitive. As a student I possess a variety of resources from other students, coursework, and even the group chat tools we use to collaborate. Luckily I am still new enough that content I’m learning is generally related to the more current version of things. However, it won’t take long for that to change. I use tech updates through news providers, follow and subscribe content producers on Youtube, Medium, social media, tech sites and web development seminars. It is almost as time consuming to ingest all of the changing components of this industry as it is to learn it in the first place. Almost.

Add a comment

Related posts:

Flying to Colombia with Not a Bike Bag

Traveling to major cities, figuring out the taxi/train/bus to and from the airport, then bumbling about yet another globalized concrete jungle is usually not the experience we hope for when we dream…

The way you will make money without Jobs in Future !!!

Will technology take away our Jobs? this has been the question we have asked ourselves many times in the past. Since then new industries have emerged and new jobs created as old ones become obsolete…

How Can We Teach Our Small Children About money?

My almost-three-year-old son has an interesting concept about money. As expected for his age, he doesn’t really understand money more than its value. For him, money is invisible, yet they get you…