I just want to say thank you for all of the support you guys have given to me, especially on my last post. It means a lot!
Sometimes it is the people who no one imagines anything of who do the things that no one can imagine.
Most people view coding as something that only a select few can do. I've been called a wizard on multiple occassions who say that I'm writing gibberish when they look at my code. How could they be expected to understand it if they've never seen it? It's like someone trying to understand a foreign language when all they've ever known is English. Just like how the world is multi-lingual, the sciences and engineering are becoming diverse in more ways than just people. With the world quickly becoming more and more digital, people may feel more disconnected about how things really work. Now I'm not saying that the Human Resource manager should understand all of the processes/protocols occuring when they send an email, but having some knowledge of technology and basic coding concepts will give students and professionals good hands-on skillsets that other subjects/areas cannot. I believe that certain problem solving, math-oriented people naturally fall towards programming because it appeals to their likes/dislikes, but we should open up younger students to these concepts and let their creativity wander.
I believe that coding is an essential skill in the twenty first century that will separate the workers from the professionals. As things become automated, different careers may need to learn more coding than just basic Excel macros - even though these are great first steps. Over my few years of programming, here are some major things that I have learned:
Everybody in this country should learn to program a computer, because it teaches you how to think
Learning how to code gives you a whole new skillset at your disposal that most people do not have. You will have the ability to create and change how computers work for you, and that can be an incredibly powerful thing if done correctly. Employers see those skills as someone who is a good thinker and problem solver, and you'll get put on a higher level with better chances of being hired for any job, because they know you'll be a productive asset to the company.
Code at one of its most basic levels is "IF some condition is true THEN do this", and thinking about problems in coding really develops your logic problem solving skills. As you build more tools/games/programs and just generally code, you will become better at solving most puzzles, because that is the nature of programming.
I code professionally, but that doesn't mean that I just sit on my laurels and use the same techniques for every project. Starting to code and putting those skills into practice put you in an environment of constant questions and learning. Even today, I still always have a tab open to Google so that I can look up any questions I have on Stack Overflow
When you learn basic coding, you learn a lot about the world around you considering most things we interact with have a computer behind them in some way. Its really interesting to know at a lower level how your computer is actually working, and when you write code, you are like a magician performing some task to make your life or someone else's easier.
You too can be a wizard with computers
I'm not going to lie, I have a pretty disorganized and cluttered life. When you code, especially in a professional setting, you are forced to stick to a certain nomenclature of coding style. Your colleagues and employer will give you a set of guidelines on how to name variables, structure code blocks, and how to comment. These are to ensure readability by anyone who might be working on the project. Even on small, personal projects it is beneficial to stick to a disciplined coding style because it allows you to easily go back and append to/edit previous code. The discipline gained with a good coding style seeps into other areas of life, because it forces you to look at your creations in a more structured/focused ways.
Shell Scripting can be your best friend as a coder if you know how to create/use them. They are command files that you can run on your computer with a simple word or phrase to do incredible things. For example, I built one that when I run
g-sync, all of the code projects on my laptop will be updated with what I have in my GitHub repositories. To do that all by hand would be tedious, even if each project would only require four lines of commands to achieve the same end. Learning to code opens you up to automation, and it is beautiful. If you're a finance manager, wouldn't you rather just let a computer organize and computer different metrics in an Excel sheet than let your mistake-prone mind do it all? Learn basic
batch scripts and coding concepts and no matter the profession, you'll be able to automate at least your more basic tasks.
Research shows that learning a second language has many positive effects on an individual. Learning to code is exactly the same deal; you have to learn one - or more - programming languages to be able to speak to a computer, and you develop/train the same areas of the brain as you would learning a human-to-human language such as Spanish or German. Understanding what is going on in a certain code block - especially when written by another programmer - will force your mind to think about each expression and declaration to figure out exactly what is going on. As you code more, you will become more fluent and powerful in these programming languages, which will open up more opportunities for you.
Seriously, don't trust yourself to perform the hundreds of financial metrics mentioned earlier...At some point you will make a mistake and who knows what the consequences could be. Computers only make mistakes when we mistakenly program them. That's the awesome thing about them; they always follow instructions! If your algorithm is correct, then you'll be correct 100% of the time. Let a computer do what it does best and crunch data, you just go back to sitting back in the break room sipping your tea.
Something awesome that I've come to realize about learning to code that puts me ahead of some others is that I have the tools/ability to put an idea into action. I don't need to hire someone to build a website or app for me, because I can do it myself. If I want to start a business or project, it gives me much more freedom to be able to design, build, and implement it myself. Its more tedious, but pays off and feels much better in the long run.