CODEX

My planning for a career change to software development in my mid-30s

What am I learning and where?

Anguiano Pérez
CodeX

--

Photo by Christopher Gower on Unsplash

In my early twenties, I studied economics at a University in Spain. However, my entrepreneurial spirit took me to another path; I start a bar business with other partners that no end so well.

After some years of working, I was decided to finish my college degree, so I enroll in Finance and Accounting. My dedication was 100 %, so I can graduate in only three years (the regular time is four years), but I was 28 years old. Some people can think that it can be a handicap, but I was happy to get my university degree finally.

Today, I am still working in the same place where I did my internship. I have been working in this company for six years. I’m happy with the work I am doing, but I have to say that I´m not feeling fulfilled.

Since I was a child, I like science and computer sciences. In my high school years, I did programming courses in C and Visual Basic, I don’t remember all that I learned, but I think it helps with my actual “Computational Thinking.” Also, in my two first years in college, I studied a Physics degree (before starting my business), I’m not a genius, but I am good at math because of that.

The last year, despite the pandemic, I was full of work because we have to respond to a liquidity crisis, and that's my job. But in my free time, I was starting to create a knowledge base. In the following months, this will allow me to have enough experience to get a programming job finally.

Math and Statistics

Like I said before, I have a solid base in math, but I'm a little bit rusty. I think that the most valuable cost-free resource is Khan Academy. I recommend at least do the following courses:

Khan Academy has more basic courses for other people who have no math background or are lost in these courses.

It is important to make study a solid habit. I try to do at least one mastery challenge or exercise; this is a useful tool to improve your knowledge that you later will apply in programming and algorithms.

CS50’s Introduction to Computer Science

This is CS50x, Harvard University’s introduction to computer science and the art of programming with or without prior programming experience. This is a phenomenal resource to introduce you to computer science. It teaches you how to think algorithmically and solve problems efficiently. Topics include abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. Languages include C, Python, SQL, and JavaScript plus CSS and HTML. Problem sets inspired by real-world domains of biology, cryptography, finance, forensics, and gaming.

Pick a programming language. I pick Python.

Two or three months ago, I was googling and looking to choose the right programming language. It is all know for everybody the popularity of python at this moment.

Why pick Python? Well, I have these three principles reasons:

  • Easy to learn.
  • Multipurpose.
  • Job demand.

There is plenty of resources to learn python these days. I will show what resources I used more of my time and what I think is more valuables to start to learn this fascinating programming language:

Codecademy

I have to say that this was my first deep contact with Python. I found this very useful to learn Python’s syntax, data structures, functions, classes, Object-oriented programming (OOP) like classes, inheritance, polymorphism, etc. You can choose his free courses or pay a subscription for more material. I think free stuff is enough to learn the basic knowledge of the programming language. You can choose to study whatever language you want.

One of the bit cons of Codecademy, and other platforms like this, is that it’s easy to code in an interactive tutorial, but that’s not real life. You have to go outside of the web, make your coding environment, and connect the dots yourself.

Freecodecamp.

Another great place to start. This is a 100 % free resource and has different courses available, like web development, HTML, javascript, or data science with python.

I also recommend subscribing to his weekly newsletter. Quincy Larson, the teacher who founded FreeCodeCamp, always sent five links with fascinating topics to improve specific skills.

Udemy

Jose Portilla’s Courses is very recommendable. You can have a global knowledge of the language. All the lessons and exercises are created with Jupyter Notebooks. The Jupyter Notebook is an open-source web application that allows you to create and share documents that contain live code, equations, visualizations, and narrative text. That facilitates understanding all the explained concepts in the course.

The trick here is to wait when they have discounts, and you can buy all courses with a 90 % discount. For example, I paid $10 or so for this Jose’s Course:

Code Challenges

I like this so much, sometimes I’m struggling with some of the challenges for hours, but it is very satisfying when you finally get the correct answer. Of course, sometimes I have to consult StackOverflow or Google to do some parts in the code, but I try not to find the whole answer. I think that this is a wonderful form to put into practice what you learn. I’m using the followings webs:

Today I finally finish my 30 days of Code Challenge in HackerRank. I try to do some of these challenges every day. Make it a habit!

Sololearn

I don't recommend this to learn with your computer. You can download de app on IOS or Android, and you can have a mobile platform to practice in the subway, bus o when you have time off.

Other resources

Once you have an advance and established knowledge of the programming language, in this case, Python, you will have to explore and learn other resources that will allow you to continue the path of being a software developer.

Python Libraries (Pandas, Numpy, Keras, Scikit-Learn, Matplotlib, Seaborn, …)

Django and Flask — Python’s frameworks for web development.

HTML and CSS

Javascript

Git (Version control).

SQL and NoSQL Databases.

Cloud Computing

In future articles, I will show you my learning through all these resources.

Final thoughts

This is my start. I’m confident and serious about this change, and the most important thing is that you (and I) can do it. All you need is patience, dedication, and time. I almost spend one hour every day in each section (math, python, code challenges, other resources). This is a total of four hours a day, sometimes more, sometimes less, but I committed at least twenty hours a week.

I know that doing that cannot achieve a programming job, but this is the beginning of the journey I plan to start.

Please follow me, and we will explore this adventure together. You are more than welcome to leave me any comment, thought, or advice.

Thanks for reading.

Disclaimer: There are not any referral links in this article.

--

--

Anguiano Pérez
CodeX
Writer for

Working in Finance. Making a career change in software development in my mid 30's