Lo-Fi Python

Jul 28, 2017

Should You Go To Programming School?

There is no one-size-fits-all answer. Below are some thoughts that may help you decide.

  1. What are your programming goals? Get a coding job? Create an app or website? Become more productive at your current job?
  2. What is your current experience level? Are you starting fresh or do you already know a language or two?
  3. Do you have money saved up? Otherwise, you might need to take out a loan.

A computer science degree is typically most expensive. Coding bootcamps are a lower cost option that pack a wide curriculum into a few weeks or months, but they can still be pricey. The cheapest option is to take a piecemeal approach through various online courses.

School Advantages

  • Wholistic approach. You get the ins and outs of programming from a proven curriculum.
  • Community. You learn with other students and from experienced teachers.
  • Job placement. Often various schools and bootcamps will connect you to a company.
  • Credentials. You gain confidence and the backing of your skills by an established institution.

Potential Downsides

  • Tuition Money. A lot of what you need to know is available for free or cheap on the web.
  • Skill level match. Some bootcamps are oriented for beginners, others are more advanced. If you do a bootcamp, make sure it fits your skill level.

If you want a coding job, school makes sense. The bootcamps look to be effective if you can handle the up-front investment. It's possible to land a job without schooling but much tougher. I am currently considering Full Stack Academy. and Coding Dojo. There are many out there. CodeAcademy is a popular route as well.

If you want to make an app or website, the school or the non-school route may both work. For the non-school route, the following languages are good places to start: (note - not a comprehensive list, these are my picks.)

  • Web App or Website: HTML, CSS, Python, Javascript
  • Web App or Website Framework: Flask, Django, py4web, Ruby on Rails, React
  • iOS app: Swift plus Apple's Xcode environment, Beeware (python library)
  • Android App: Java or Kotlin, Beeware
  • General Coding: Python or Ruby

If you want to be more productive at work, I recommend learning Python. More on Python and where to start here. Automate the Boring Stuff With Python is a great resource for boosting your productivity also.

It's not easy to decide whether or not school is for you. I'm still unsure after a year and a half of programming on the side. No matter what, continue to learn multiple languages and strive for a better grasp of the ones you know. Good luck!

My decision: continue self-study and learning online for free.

As of 8 months after writing this post, I have concluded that learning for free online was the right choice for me. I've achieved many of my programming goals in the last three years, thanks to materials available from Codeacademy, Coursera, YouTube, Stack Overflow, countless helpful resources,, interesting blogs, and documentation. I've talked with others who need the in-person assistance that a bootcamp offers to learn. Do what works for you. Good luck with your decision.

Update: Several years later, I also get paid to use Python and Excel for a living! I studied for free online intermittently over 2 years to achieve it.

Jul 28, 2017

Cycles

We move in cycles. Work, rest, re-energize, play, repeat. The rhythm of life.

I began my coding endeavors in the fall of 2015. After 6 months of steady coding practice and studying, I went from no knowledge to a basic hobbyist programmer capable of creating a website with the help of a framework. I published a few of my own primitive apps. Then I relapsed. Coding and my full-time job wore me out. I stayed away from coding for about 6 months.

My ultimate goal to learn to code was to be able to build my own websites and apps. I've done that now. I've found ways to do it more efficiently, which I will share in future posts.

Two of my recent moonshot projects were Social Queues, a social playlist builder for Spotify and Dropcycle, a bicycle on demand pick-up service. Neither went anywhere, or really were that good of ideas, but I was able to get to bare minimum viable product status, with little to no code. Sites like carrd.co work well to build a quick landing page as proof of concept or landing page test. My favorite project might be my Tame Impala website, which I used web2py to build the site and pythonanywhere to host for free.

My aspirations have shifted. Instead of just building apps, I want to build apps that are useful to others and help me achieve financial freedom and the ability to own my time.

I believe in cycles of learning. Similar to being in school: semester of study, then time off to rest, then semester of study, more rest, etc. The time away is as important as the time of study. Earlier this year, I returned to programming and web development. After a long time of not writing on this blog, I'm back at it. New cycle.

Mar 03, 2016

Starting to Almost Kinda Think About Creating a Web App

One of my first goals when I started learning Python was to build a web application. Once you've gotten a basic grip on Python, you might be ready to learn about web frameworks. A web framework consists of software designed to aid in web development. They make it easier to create a website or web app - if you know how to use them. Unfortunately, there is a learning curve to using the frameworks but thankfully there is plenty o' documentation to go around to help you.

Here are the two Python Frameworks I've chosen to investigate:

  • Django - widely used, great community support, comes with just about everything built in. Can be used for smaller apps or multi-page/app websites.
  • Flask - a "microframework" used for smaller apps. Possibly more manageable for someone beginning a smaller project (me!)

So as a beginnerish-level coder, I've chosen to start with Flask; I also found this sweet guide that I think will help. Maybe someday I will graduate to Django, it sounds like a great framework. I've also decided that first I need to brush up on my HTML - And according to a lot of what I've read it doesn't hurt to know CSS/Javascript. So this whole "build a web app" idea will continue, albeit with some hurdles to clear first.

Edit: I ended up choosing web2py, which I hadn't even considered when I wrote this originally! Here's a post about why I chose it.