Coding on the Go!: Ogaga Dafetite mastery of coding on phone births Betty on mobile!
Not even a malfunctioning PC can hold down Ogaga because he has mastered the art of coding on phone and further worked on a fix that can support many peers: Betty that works on phone terminal apps!
My name is Dafetite Ogaga and I am an #ALX_SE learner currently in cohort 16. I am based in Nigeria where I also work as a marketer in a company here. I was inspired to join the ALX software engineering program because I have always had a flair for technology and coding. I have mastered the ability to code both on phone and laptop so when I am at work or on the move, I use my phone and when I get to a place I can settle down, I use my laptop. However, I faced various challenges while coding on the phone due to various limitations especially when using the Termux app. When we did the vagrant task, I discovered that we could actually do our work in our own environment without needing to use the sandbox. However, betty and the checkers is a core part of the #ALX_SE program but it was impossible to install betty on my phone on the Termux app that I was using. When I checked the various WhatsApp groups that I belonged to, I realized a lot of people were facing a similar problem hence that is when I decided to try and come up with a solution.
I, therefore, took a deeper look at the Betty resources that are the files and the repositories. I discovered that I could actually fix Betty by coming up with a script so that one can easily integrate it on the Termux app. The script is on my GitHub and it is open source hence anyone can easily go there and access it. All you have to do is to copy the 2 files i.e. phone-install.sh and phone-betty.sh files and run the phone-install.sh from the Betty repo. Restart your terminal and Betty will be installed on your phone and you are good to go! I am very grateful for the ALX software engineering program because the immense knowledge I have acquired so far empowered me to create this phone Betty. Before joining the program, I did not have much of an experience with programming though I was very curious about it. I knew I wanted to chart a career in programming hence in 2022, I resigned from my job to focus on building the necessary skills. I later tried to learn programming languages such as python on my own on YouTube and visiting stack overflow but I lacked structure and a roadmap. It was actually very confusing trying to learn on my own until I discovered the ALX software engineering program.
When I joined the program, I had some little knowledge about python but I could neither write a class nor a function properly. I was, therefore, a little scared when I realized that the #ALX_SE program starts with learning C which is a low level language. However, ALX does a great job at teaching grit and growth mindset which really helped me to push through any initial fears and just take everything head-on including coming up with Betty on phone. ALX requires at least 70 hours per week hence I realized that I need to be innovative about how I can fulfill this requirement while working a full time job so that I do not fall behind. Before joining ALX, I was fond of playing the asphalt car racing games during my free time and when I am on transit in a bus heading to and from work. I, therefore, installed the Termux app so that instead of playing games, I can start coding, reviewing resources and/or watch videos during any free time I have and the easiest way to do that when I am on the move is on my phone. My chosen terminal on my phone is the Termux app because it has a similar environment to Linux where I do not have to SSH into it, I can just clone the repos and continue working offline. Once you are done, you just put your data on and then push it to GitHub. The only challenge is the smaller screen on the phone but once you get used to it, you can be coding from anywhere and anytime.
However, I have also crafted an ingenious way of how to deal with the smaller screen on a phone. For example, when you want to write 200 lines of code, it may become challenging to scroll back and forth and effectively edit the code. I, therefore, downloaded and installed a small equally portable computing keyboard that has all the keys you need such as the tab, control, f1 function and all that which makes it a lot easier when you want to write more lines of codes and effectively navigate up and down. I also use VI and so the difference between a phone and a laptop is that what can take you 10 minutes on a laptop will probably take you 20 minutes on a phone for a starter. It is a little bit stretchy but it is possible as long as you know how to write code. I also find it a lot of fun practicing more concepts on my phone after I am done with the core program tasks. For example, if the lesson is how to print alphabets in lowercase, I would seek to go over and beyond and understand how I can print the same in both lower and upper case. So, sometimes when I am on the move or transit, I play around and modify the code on my phone till I have fully mastered the concept. I have equally undertaken various projects and tasks completely on my phone.
Most of the first projects like hello world, if/else can be easily done on a phone but some of the advanced tasks can be very challenging if you try to do them on a phone although doable. Some of the advanced tasks maybe a little complex hence the only thing you can do on a phone is probably read the resources, watch videos and research for more learning materials. However simple tasks such as printing out numbers of the alphabets in lower and upper case, writing functions, even pointers and malloc can easily be done on your phone using the termux app. I would say that learning how to use both phone and laptop to code is a super important skill because it makes one very dynamic and adaptable. When your PC crashes or malfunctions in one way or another, you do not have to sit around and wait, you can still get on with simpler tasks as you wait for it to be fixed. The operating system of the phone does not matter because there are apps that emulate the Linux environment for virtually all types. For android, I know of termux which is my personal favorite and there is another one called Termius that equally works well. The beauty of these tools is that you do not have to SSH into this terminal. All you have to do is to clone your repo from GitHub to this environment and work with it without needing remote access to the sandbox. However, you must go online if you want to push it to your GitHub.
I would say that I had a lot of fun building the Betty for phone but I would not entirely take credit for it. Betty was already a creation of ALX hence I took great care not to try and rewrite into something completely different and maybe end up with copyright infringement. Betty actually runs on a shell script and I will be happy if my innovation can be integrated into the original one so that people do not have to keep visiting my GitHub to install Betty on their phones. Although, I have written another program that focus mostly on automation i.e. creates various commands that makes working with the Linux shell easy. Part of this commands is the betty linter. Should you decide not to want to use the instructions above, the custom commands will automatically install the linter to either your phone or pc effortlessly with just a keystroke. Here is the link to the repo: https://github.com/DafetiteOgaga/custom_commandsI have mastered how to code on both phone and laptop and I would encourage my peers to also do the same to make you more dynamic.
To stay in touch with Ogaga Dafetite, kindly reach out to him on Twitter, LinkedIn and GitHub.