Why I’m Learning Java

A text-based basketball game I made to practice if statements

For anyone that’s wondering, no I’m not changing my major to Computer Science because to be brutally honest those mandatory math courses make me feel like I’m going to break out into hives.

We live in a world that is constantly making new achievements in technology. We can’t just tell ourselves that programming is for “nerds” and that we should just stick to using computers for Solitaire, Excel spreadsheets and Instagram memes (we’ve advanced past cat videos).

I’ve spent the last two weeks trudging through Beginning Programming: Java for Dummies and I have decided I’m finished with that book and moved onto an AP/First Year Computer Science textbook. Before that I was working through the Codecademy course before the way they presented material stopped feeling as if it was the most conducive way for me to learn. I’m currently working on looping, text-based games and dipping my feet into AndroidStudio. The big question is, what business does a Psych major have learning about Computer Science?

The World is Changing

We live in a world where we don’t do most of the work, computers do. I think that in most professions learning a programming language can make your workflow much smoother and cut out unnecessary time. For example, developing a program that can grab data from a text file then use that to write the averages of that data to another file. My example seems simple, but there are websites like jsPsych that let you develop behavioural experiments in a web browser written in JavaScript. When you take into account the capabilities of some languages the possible uses are literally (I think?) endless. Why wait for your tech guy to make something for you and it ends up not working the way you want because you can’t communicate your needs properly when you can do it yourself?

I Don’t Know What I Want to Do Sometimes

I say I want to go to grad school and get my Ph.D, but I’m really not sure a lot of the time. Last year I wanted to go to Osgoode f0r patent law or educational law, before that I wanted to be a market research analyst, before that a high school teacher. I’ve had a few constant interests, Psychology (slowing getting areas of interest down to IO, human factors and holistic education), technology and, to my mother’s dismay, business. Java is a pretty marketable language to learn and being a developer doesn’t always require a CS degree. I really do want to keep my options open and I don’t think anyone will refuse to give me a chance at an opportunity because I’ve read a few Java books. Learning how to code not only allows me to tap into the tech industry, but further development in my other interests. I was really inspired by the work of my Intro to Psychology professor, Steve Joordens, and my PSYA02 professor, Dwayne Paré, and their work on peerScholar. PeerScholar is a web application that allows peer marking and review for assignments and it was developed by Psychologists! It shows an interdisciplinary approach to product development as it encompasses education, psychology and web development. The possibility that I could spearhead my own piece of software and startup inspired by psychological research and power by computer science seems exciting and like something that would wrap up all of my interests into one. The ability to create something tangible with my knowledge of Psychology would be a great end goal for me.

I Love Puzzles

I’ve heard people say coding is like poetry and as someone that considers themselves a writer (and now editor, but that’s a story for a different article 😉), I really do see the poetic aspects of it. But to me it’s all a bunch of puzzles and if you haven’t picked up from my obsession with television’s greatest puzzle junkie, Gregory House, I love puzzles. I used to do practice LSATs, I grew up having teachers do Red Herrings with my class and my old phone has 2048 burnt into the screen. Making a cluster of text do something is a great brain teaser and it’s very fulfilling.

Why Java? It’s a Great Language!

Errors, you will see a lot of these programming

Java is a fantastic language to learn in my novice opinion. The community is huge, there are certification exams, it’s mature and the further you get into it, it becomes apparent that the language is working against you and doesn’t want to do anything you want it to do and I think that’s great for beginners! Some people recommend that you learn a loose language like Swift or Ruby first because they’ll guess stuff for you and they want to work with you. I was born, bred and raised in the if it’s not hard, it’s not worth it school of thought. I agree with those that tell you to learn a language that’ll set a good foundation for you, like Python, C# or C++ and obviously Java. For me, Java has the right amount of rigidity where I look at looser languages like Ruby and Swift and they make sense to me(well the simpler stuff at least) and when I learn something in Java I feel like I’m learning something that really rattles my brain.

Why Not Just Switch Majors?

Well, for starters, math and I stopped being friends when I took grade 11 advanced functions in the 10th grade and then our love was reignited when I was introduced to the world of statistics and logic in the 11th grade. But flipping through my friends’ first year discrete mathematics and calculus for math majors textbooks I was reminded of my limits. But I can’t kick myself wishing I was better at math because I really do love psychology as a discipline, it provides me the flexibility to branch out into different areas while still equipping me with skills relevant to my actual degree. I feel as if utilizing programming within psychological (as well as other natural and behavioural sciences) research will become more and more necessary in the near future especially after reading Why Every Psychology Major Should Learn How to Code. As I learn more and more about computer science I realize that the skills learned through that discipline are not limited to just that field. Being able to pick up on algorithms, learn syntax and think logically are skills that I believe all people should learn. I’ve easily been converted to the “everyone should learn how to code” school of thought. The better you are able to utilize your tools the better your work and the more efficient your workflow, computers are becoming the most used tool in a plethora of industries so it makes sense we should get well acquainted with them, right?

I Should Do Something Better With My Spare Time

I don’t think that’s the case at all! I can’t think of any better way to spend my time than developing a new skill and becoming more computer literate in a world where they literally do everything. If you think learning how to code is useless then you’ll never be able to fully utilize or understand the device you’re reading this on, be it a computer or mobile device. Being aware of the intricacies of software development, UI/UX design and basically how computers work gives you not only a better understanding of how to use them, but also a greater appreciation for these devices and the people behind their development.

I doubt that I’ll ever become the world’s next big app developer or get good enough that some company headhunts me (but if that happens I’m not complaining), but I think this is a useful skill for me to develop. I’m happy to be in a place where the barrier to entry in terms of technology isn’t too high; I’m not privileged enough to spend $6000 on a bootcamp, but I’m lucky enough that I go to a school where there are CS courses for non-major students and programming courses in my actual major of choice.

Thank you to Codecademy, Java67 for all the free books and Free Code Camp for the inspiring articles.

-Kyle