Inspiring Computer Programmers

Most of my drive to become a computer programmer comes from listening to, and seeing the work of, my favorite programmers. Here is a list of particularly inspiring software engineers.

Derek Sivers

sivers.org

Derek actually wrote a book that I consider to be the most positive impact on the way that I approach business. The playfulness of his projects makes it fun to follow him on GitLab. Even his own blog is an open source CMS option for anyone seeking to organize their work like him.

David Heinemeier Hansson

david.heinemeierhansson.com

David wrote a great book that inspired me to have more confidence in the viability of remote work. I appreciate that he goes contrary to the the perspective that tech businesses win when they get funding. Outside of his excellent writing, he created a framework called Ruby-on-Rails which is an open-source project that helps people create web apps quickly. The way he manages the technology is facinating.

Matt Mullenweg

ma.tt

As the creator of WordPress, Matt has probably had the largest impact on the internet since Larry and Sergey created a search engine. The way he drives the massive ship that is WordPress is really inspiring and I find his blog is full of useful, heartfelt thoughts. Also, check out Simplenote which is a side project for him, but a really elegant tool.

Sammy Kamkar

samy.pl

His story of writing a worm that took down MySpace is funny, and a bit scary. He makes YouTube tutorials describing exactly how to build robots that open combo locks in seconds and other mischievous activities are great. He uses hardware and software skills to make interesting things and I think that’s useful when approaching problems with technology.

Other Helpful Programming Points of Interest

ChangeLog Podcast | Engineered Truth

Know and interesting programmer, please let me know about her in the comments.

Preparing for Coding Bootcamp

What I'm Doing Now - Computer Programming

Updated July 26th, 2016

Learning to Code

My first week at the offices of AppAcademy started at the beginning of July. We are writing JavaScript algorithms to solve data set problems. Though the algorithm problems are fascinating, I find it’s important to create things that are actually useful. For that I hand coded a CSS/HTML tribute page to my late grandfather. I also just finished hand coding the first iteration of my programming portfolio.

Just the other day, we broke through how we can use the algorithms we’re creating to mix with data. We’re using NodeJS to break this barrier and I find it fascinating! I’ve also developed a good understanding of what JSON is, how it plays a role in the universe of computer programming and why it’s one of the most exciting technologies available. If you’d like to hear what taught me a lot, check out this ChangeLog podcast.

What I'm Doing Now - Computer Programming

What I’m Listening To:

Thank you Derek Sivers. Learn more about this post at now now now.

When my focus changes. You can read about it here.

Embedding 3d Scripts to make Websites Engaging

I’d love to be able to embed elements like this into the backdrops of websites to make them look really amazing and futuristic. This one is a bit dramatic and would be distracting…. but if I could slow it down and make the moving shapes low contrast, I think it would make an amazing website. Maybe a good one page element for a data science company or something like that.

See the Pen Nonsense Clocks by Zevan Rosser (@ZevanRosser) on CodePen.

Programming Scratcher and the Unicorn Wizard Forest Party

The coding continues… this is strange.

At it’s core, programming is the discipline of logical, procedural thinking. If that’s the case, what on earth is the above game doing here?

It’s easy to get caught up with the way we write code. Often the whole structure is broken if we miss a single comma in a 20-line text file. That makes it more difficult as error messages are often more common than actually making progress in a real program.

Scratch is a simple programming language which empowers users to write computer programs without being code monkeys. There is very little typing. To create a game like this, we just drag and drop.

The benefit to coding is that the logical thinking is still a part of the process. You can learn to create using if/then statements but you won’t get jammed up for a missed comma. One learns the data structures without getting stopped by the reality of proper syntax.

To create the music I deconstructed a YouTube tutorial teaching us the Indiana Jones theme track. It was interesting learning a song through beats per minute and rest times. I found myself revisiting lessons learned from traditional sheet music to solve some of the issues with 1/8 notes and 1/16 notes. This is another example of how breaking down ideas so that a computer can repeat those ideas, empowers the creator to understand the actual thing at a deeper level.

Ruby Notes – Ch1 AppAcademy.io Coding Test

The following are my notes from the appacademy.io chapter 1 introduction to programming.

There are three types of data in Ruby:

  1. Numbers
  2. Booleans – True or false
  3. Strings – Words or phrases

Ruby is case sensitive

puts can be called methods in Ruby

Integers = Whole #s (ex 42)

Floats = Fractional #s (e.g. 3.14)

Never write commas when writing integers. They will change everything.

Notes on Division

Ruby does not divide into integers. It returns whole #s

puts (9.0/2) | #returns 4.5

puts (9.fdive(2)) | #returns 4.5

Modulo n%m -> returns the remainder from division

Defining Variables

ian_loves = “guitar, wifey, surfing”

Variables must:

  • consist of letters or/and #s
  • first character must be lowerCase
  • no spaces (separate words w/ _ )

Gets Method

The gets method allows you to ask users to define variables
puts("Type in your name, please.")
name=gets()
puts(name)

This would return whatever the user entered

Gets for Strings and Integers

Converting Strings and Integers

  • to_i = to integer
  • to_s = to string

The Chomp Method

chomp makes it so a line break doesn’t happen behind each gets command. It seems like it’s used most of the time. For example:

puts("Type your name, please.")
name = gets
name = name.chomp
puts ("Hello" + name)

use gets.chomp rather than reassigning the variables.

 

Important Note: Feeling good about all of this. I can write program files using Atom and execute the files using terminal.

I went through the Codecademy command line class which was a critical step in understanding how to navigate and execute programs using just typing. This makes it so I can at least pretend to be like the guy in Mr. Robot.

It was today, November 20th, 2015 (these notes were copied her later) that I actually wrote and executed my first computer program. It was a game that said hello.
puts("Hello. What is your name, please?")
name = gets
name = name.chomp
puts("Hi " + name + ", it's nice to meet you.")

Screen Shot 2015-12-06 at 2.11.28 PM

 

That’s it

If you’d like to continue to follow along with these notes, I continue the study in my notes in chapter 2.