Programming for Cybersecurity: Practical Advice for New Learners
Michael Balsa
?? Information Security Analyst | Software Developer ????| Information Assurance Tech ?? | Data Analyst ?? | ?? Database Administrator | Python Developer ?? | ??? "Inspiring Others Break Into Cybersecurity Field" |
?? If you have read many of my articles, I was breaking into cybersecurity when I first started out in IOS development. I wanted to learn the underlying structure of secure coding, and eventually, I branched off to programming in general. This is one of the best skills to have if you are breaking into the cybersecurity field, but it is one of the slowest skills that will take time to develop.
I sometimes felt like I was stuck in tutorial hell, jumping from tutorial to tutorial, trying to learn programming-related topics but making no progress. Learning to program is one of those skills that takes a lot of time and consistency to be effective. You need to be willing to get it wrong a few times to really get it right.
You Can't Memorize Code In the Beginning
?? When I was learning to program, I thought buying every subscription to every programming tutorial would make me a better developer, but I was wrong. Most importantly, I was wrong for the longest time. The reality is that the more you program, the better you will get at it. But when you are learning to program, you cannot remember every single line of code you write. You will be referring back to old tutorials and documentation quite often.
?? There is nothing wrong with not being able to memorize code in the beginning. With time, like learning to ride a bike, you eventually will be able to write code without using documentation often or looking at tutorials. However, for a while, it took me almost six months to learn Swift programming language until I could write functions and other logical operators without referring to documentation or tutorials.
It's More Logical Thank You Think. Practice Some Math Questions
?? This one actually helped me a lot when I was learning to program. I found myself writing "code" a lot of the time rather than actually programming. What do I mean by that? Well, there is a big difference between someone who can write line code and someone who can actually write a program. Programmers write software with minimum assistance, while someone who just knows how to code depends on someone else to provide the code so they can write it.
?? When I was learning to program, during my off-hours, I would do one math question, specifically in algebra, to warm up my logical thinking. This helped me think more logically when it came to actually performing programming-related questions. I was never a fan of math in high school or college, but the logical breakdown of how mathematics is similar to actual programming helped me.
领英推荐
Breaks in between, or you will be burned out quickly
?? I had to learn this the hard way because I would burn myself out throughout the week whenever I was programming. It catches up to you, and you'll find yourself hating programming because you're burned out. I cannot tell you how many times I would be programming for two weeks straight with no breaks, and the next few weeks or months, I would completely stop programming because I was burned out.
??I would do hour breaks to 45-minute breaks, for example, if you are programming for 3 hours. I would do this as it allowed me to utilize those three hours for deep concentration and focus. You can also do other techniques online, but I would wake up early on Saturday or Sunday, around 7 am, and be programming until 10 am. I would take my break and repeat. I would do this two to three times a day. Dont overdo the programming. It will catch up to you.
AI Programming Practice Questions & Scenario Based
?? When I was learning the Swift Combine framework, I remember having a hard time understanding how APIs worked. I would utilize ChatGPT, and the AI would write me practice questions based on the topic of Swift Combine I was working on! This, by far, was one of the best ways to learn programming-related topics quickly, as you are utilizing logic and bit muscle memory.
?? I would have it write scenario-based programming questions for publishers and subscribers, and I would read the questions and write the code. Then, I would have AI verify my code to see if I did it right. I did this every day, and I would have to say I saw a lot of improvement in my programming skills, as I was constantly challenging myself with programming-based questions and building on my knowledge every day.
Writing Notes/Flash Cards on Technical Knowledge About the Programming-Related Topics You Are Learning
?? When I was learning to program, I would write flashcards about the learning material or topic I was learning about. For example, when I was learning SwiftUI, I would make flashcards with different technical programming information about the library and how to use it. This made my memory really good when it came to remembering technical knowledge and helped me when I was actually writing the code. I also did this while learning Python since there are so many libraries and ways to write code. I sometimes made code snippets, put them on flashcards, and quizzed myself to figure out what that block code was performing!