I first became a Python Developer
I enrolled college as a physics major
I started college at the age of 17 at Stevens Institute of Technology in Hoboken, NJ. I graduated high school in three years and had not gotten a chance to take Calc 1 or any AP courses. I enrolled as a physics major, hoping to minor in philosophy and ultimately pursue a career in theoretical physics. In retrospect, I probably should have thought that decision through more than I did, but I was exhilarated and inspired after reading Parallel Worlds by Michio Kaku and Stephen Hawking’s A Brief History of Time that I was determined to study quantitative and theoretical physics.
My first semester at Stevens consisted of: Calculus 1, Mechanics, Chemistry, Chemistry Lab, Computer Science, and an English course.
The math required for mechanics, my first physics course as a physics major, consisted primarily of calculus — a course I was taking concurrently.
I struggled learning Matlab
In addition, the computer science course, taught in Matlab, used calculus and physics problems as homework assignments. This course was my first exposure to computer programming, and I was expected to perform matrix multiplication, calculate the braking distance using the acceleration of gravity, and plot surface area plots in Matlab.
I didn’t think computer science was for me
I was in over my head to say the least. I was distracted, confused, frustrated, and overwhelmed. I had convinced myself that programming was not for me. I was concerned that I had not picked the right major, and that I would not succeed.
I became a math major
Before the beginning of my second semester at Stevens, I decided to switch my major to math. I was confident in my mathematical abilities and I truly loved solving math problems. A friend of mine cautioned me, telling me I should wait until I pass Calc 2 before changing my major.
But even so, I believed in myself and took a chance. And my friend was correct, Calc 2 was difficult, but I passed the course, and I went on to earn a bachelor’s degree in applied mathematics.
I wanted to bring math to philosophy
I really enjoyed my mathematical studies, but at the same time, I was inspired by my courses in philosophy. That theoretical inclination was still in the back of my head, and I wasn’t necessarily sure if I wanted to pursue a graduate degree in math, so I decided to pursue graduate study in philosophy instead.
I hoped to bring a mathematical approach to answering philosophical problems, and included mathematical formulas in my philosophy papers.
In my undergraduate studies, I explained Plato’s tripartite theory of the soul as a point in three dimensional space, where x, y, and z represented the three parts of the soul. I also used set theory to shed light on Hume’s theory of causation.
As a graduate student, I examined the theory of belief updating as a Bayesian model of prediction, and the theory of mental representation as a computational model.
I wanted to bring computer science to philosophy
While at the CUNY Graduate Center, I was exposed to research that used Python programing and neural networks to further research in philosophy of mind and cognitive science. I wanted to understand cognition and conscious experience by building computational models.
I learned Python
After not getting into a PhD program in philosophy, I decided to learn python. I felt that if I couldn’t study computational models from an academic perspective, I would build them from the ground up.
Python for Everybody on Coursera significantly changed my perspective on computer programming. With some dedication and persistence, I learned Python data structures. I learned how to code in a text editor and execute my code in the terminal. I learned how to document my code. I was introduced to parsing text using BeautifulSoup and I had my first crash course in SQLite.
I then learned Object Oriented Programming in Python. I learned how to structure my code into classes, methods, and attributes and how to instantiate object instances. The link for the book I read can be found here.
As I learned Python, I would first write new code as a for loop, then I would write it as a function, and finally, I would write it as a method of a class with object attributes.
I learned numpy, pandas, matplotlib, seaborn, scipy, and scikit-learn.
I learned how to fit a linear regression model, a logistic regression model, support vector machines, and decision trees.
I learned SQL
I took a SQL Essential Training course on LinkedIn Learning, which covered Standard SQL, as well as SQLite. I then decided to learn MySQL, and took the following two courses: MySQL Essential Training and MySQL Advanced Topics.
I learned how to join tables, create views, write stored procedures and stored functions, and create triggers.
In order to learn MS SQL Server, I took Microsoft SQL Server 2019 Essential Training on LinkedIn Learning. I learned T-SQL and how to write CTE’s.
I’m currently learning Java
Using the textbook Think Java, I’m teaching myself Java.
Becoming a Python developer, learning object oriented programing, database design, machine learning, and computer science fundamentals, I’ve changed my mind: I think computer science is for me.
I wanted to be a data scientist, and now I am one.