Like everyone else, I’ve been busy for the last several weeks adjusting to our new normal. Shifting to remote learning for work, grad school projects, volunteering, and trying to keep my mind in order with all of the stress and upheaval we are all navigating right now. So it’s been a while since I got to tangle with my Flutter projects, and I dove back into it a few days ago since it is, after all, my major project for one of my classes.

Photo by Gabriele Diwald on Unsplash

Unfortunately, consistency of practice is key when it comes to learning coding, so my break meant having to backtrack a bit on my tutorial. No problem.

Unfortunately, I managed to do some damage to my current project without realizing it. I moved some files around, which changed where the Flutter SDK files lived on my computer. So when I tried running the commands to run my project (commands that look for things in specific locations on the computer), things weren’t going right. In the last few days I’ve spent HOURS figuring out to resolve this problem, and I only just solved it about 15 minutes ago. Suffice it to say this was very nearly a different kind of post!

In the end, by the time I fixed it, I had to upgrade Flutter, upgrade XCode, and finally rebuild my project, paste in the right code, and abandon the original project. I’ve gotten it working again, but man, it was frustrating trying to just get back to the point I left off with a few weeks ago.

I think it’s important to talk about these things out loud, particularly when I’m trying to speak to an audience that is probably not made up of experienced software developers. It’s not easy to learn to code. That’s not because you have to be a genius to learn to do it – far from it. All you need to get good at coding is a stubborn streak a mile wide, and a certain penchant for banging your head against a wall and to feel successful to just plant your feet in the same ground you tread a few weeks back.

One of the things I’m actually really proud of myself for this time is my growing comfort using BASH in the Terminal on my Mac. I’m going to write a post about this soon, because it’s a big part of coding that’s important to square with of you want to learn to write software. It’s intimidating for almost everyone in the beginning, and still is for me after using it off and on for a handful of years.

It’s part of the whole ecosystem of coding, which is often the most confusing part of learning to code. So far in this project, I’ve used:

  • Two different IDEs (integrated development environments), which are basically the software you use to write your code. It’s sort of like Microsoft Word or Google Docs for creating text documents, except the tools are designed to make writing code easier by color-coding and helping you spot errors faster.
  • Two different emulators that allow me to test my code as if it were on an actual device. I use the simulator feature in XCode to test in an iOS (Apple) device, and an Android simulator in Android Studio to test my code on an android device.
  • Terminal, which uses BASH to help coordinate these things. So in Terminal, I’ve saved commands and file locations for where the Flutter SDK language tools are so that I can access them easily to tie things together. I build my initial app packages for each app in BASH, open my emulators in BASH, run the commands to build my code (prepare it for the emulator) and then open it in one of the actual emulator tools to test it. I also use BASH to test my Flutter setup, to update Flutter, to clean and rebuild my application package, and other tasks as well.

It’s a lot, and the head-swirly feeling you may get while reading this is one of the hardest things for beginners to overcome, in my experience. There are plenty of tutorials for the coding itself, and learning the syntax and logic patterns is one of the most straightforward parts. It’s the rest of what you need to learn around that to go from code to an actual program that can get very overwhelming very fast! People tend to assume that everyone else is understanding it better than they are, when it’s almost never true. Often, people are just going home and struggling alone without letting their peers know how lost they feel.

So consider this my admission that everyone struggles with this stuff in the beginning, and keep struggling with it from time to time. If you hate dealing with it, you’re not alone, but don’t let it keep you from learning if you want to learn. If you keep banging your head against the wall long enough, you taste enough of victory to keep you going.

The Importance of Consistency, the Ecosystem of Coding, and Miles of Brick Walls
Tagged on: