Mobile App & Web Developer

The Future of Programming – Bret Victor

 

What is the Future of Programming?

 

 

Bret Victor on the Future of Programming. Here is Victor’s Website with notes and sources.

 

“The most dangerous thought that you can have as a creative person, is to think that you know what you are doing. Because once you think you know what you’re doing, you stop looking around for other ways of doing things. And you stop being able to see other ways of doing things. You become blind… The first step is you have to say to yourself: I don’t know what I’m doing. We as a field don’t know what we’re doing. I think you have to say: We don’t know what programming is. We don’t know what computing is. We don’t even know what a computer is. And once you truly understand that, and truly believe that, then you’re free, and you can think anything.”

 

Learning How to Hustle

 

“Knowledge without action is useless, just as action without knowledge is reckless.”

 

I started a new job this Monday as an account manager at Izo Brands. It’s a startup advertising specialty ecommerce store that specializes in apparel. To put it simply, I sell custom T-shirts… It’s hilarious how life works out.

 

All throughout college I told myself that I didn’t want to work in sales. I would tell the same anecdote to everyone I met; the Western world is addicted to demand-side economics and what we really need is to focus on production, innovation, and solving real problems that matter. The aspiration for creating my own business lead me to technology, web development, and the Starter League where I learned Ruby on Rails. For the past few months I was searching though cookie cutter IT and developer positions that I wasn’t really qualified for while deleting every insurance agency email that came my way, when out of the blue, my current boss contacted me about an internship.

 

That was about two weeks ago. Now I’m working a full time position as an account manager in a small office startup that has the vertical behind it to create effective products with efficient services and seize a real opportunity in the industry. The hours are long, it’s a lot of cold calling, and the commute is an hour an ten minutes; but overall, I’m loving it so far.

 

I’m realizing that the famous Steve Jobs quote, about life and the dots aligning was pretty accurate. When you look back on your life you can clearly see how all major events and opportunities lined up to the present moment, but it’s not so easy connecting the dots looking forward. I’ve spent a lot of my life contemplating the pros and cons of which of direction I should take. That phase is over. It’s time to take risk, fail, learn, and succeed. It’s time to learn how to hustle and focus on execution.

 

Web Dev Starter League – Week Eight, Nine, Ten, and Eleven

 

“What is the best way to develop a website?”

 

The past couple weeks have really flown by. On week eight we had our hackathon weekend, where each demo day group worked around the clock. My group, Friend Karma, set a goal to have the MVP (minimum viable product) completed by the end of the weekend. We weren’t able to completely finish the MVP, but we did make giant strides in the overall development. It’s incredible what a small group can accomplish in forty-eight hours when there is a mutual goal in sight.

 

In class we learned about installing and setting up awesome Rails gems.. The gem private_pub, utilizes JQuery and Ajax to let each chat-user view all the updates on a given page without refreshing the browser. The gem OAuth enables users to sign in via Twitter. In our app Friend Karma, we are using the gem Sorcery for authentication. We are also using the gem public_activity which simplifies the process of creating a news feed of all recent activities.

 

These last four weeks have helped me realize how much there is to learn. In the end of Learn to Program, Chris Pines, mentions “Tim Toady” or TMTOWTDI, which stand for “There’s more than one way to do it.” There are almost an infinite amount of possible ways you could develop the same exact website. The first task is getting from point A to point B. Break a few eggs, use a few gems, or don’t, get to MVP. Then and only then, ask yourself, “What is a better way to develop this website?”

 

Starter League Web Dev – Week Six and Seven

 

What is back-end development?

 

We have been learning lots of awesome things in class over the past two weeks like: database structures, table associations, validations, tests, user accounts, user sessions, cookies, passwords, account security, and Github.

 

Github is a code management network that simplifies Git, which is a free source code management system. (Git was invented by Linus Torvalds aka: the guy who invented the Linux kernel). Git and Github are absolutely awesome. Seriously though, it makes me happy to be alive. Github allows developers can easily upload their files and projects to store, share, and collaborate with other developers. If you are interested in Git and Github, I highly recommend Git Immersion, an awesome intro tutorial to get you started.

 

Database structures and table associations are the fundamentals of linking a database together to create functional web applications. Validations ensure that the information you enter is valid for a given data entry. You know those notices that tell you your username or password need one uppercase letter and/or one number? Those are validations at work.

 

Tests are written in applications to test the code to make sure it doesn’t break later on and result in a devastating error that scares all your users away. That being said, any popular app most definitely has lots and lots of tests to make sure it runs properly. There are actually tests called koans that allow programmers to learn specific programming languages. For anyone that is learning Ruby, I would definitely suggest Rubykoans.

 

User accounts and user sessions are all made possible because of cookies. HTTP cookies are small pieces of data sent from websites to be stored in the user’s browser. Authentication cookies notify websites of the their users’ previous activity, such as if a user is logged in to a specific account or not . Not all digital cookies are equal though. Tracking cookies and third-party tracking cookies can collect records of your browsing history, so we should still clear our browsers’ cookies from time to time. Why are they called cookies? The name cookie was coined by developers to think of a trail of cookie crumbs. The name stuck. But seriously, who doesn’t like cookies.

 

It’s crazy that week seven is already over. I’ve learned so much during this experience at the Starter League and at 1871! It’s crazy how the more you learn, the more you realize how much you don’t know. Time to go get some rest. There are apps to be built in the morning.

Starter League Web Dev – Week Four and Five


Is perception reality?


This blog post is about the web dev content in weeks four and five, yet it is being posted at the end of week six. So is the post new or old?

Whether it’s old or new, it exists right now. I guess that is what really matters.


During week four our class perfected our CRUD skills by creating a tumblr-like GIF blog over and over until we memorized the process and the syntax. The CRUD app model is necessary for 99% of all websites as it contains the necessary functions to Create. Read. Update. and Destroy. The CRUD app model is also known as a RESTful resource because it utilizes four of the core methods/requests in HTTP. These four core requests are: [GET, POST, PUT, DELETE]. GET receives data, POST posts data, PUT updates data, and DELETE deletes data. While a CRUD app has the four functions C.R.U.D., there are seven actions behind the scenes that carry out these four functions. Because these actions are so great we call them the “The Golden Seven”. These “Golden Seven” actions are: [New. Create. Show. Index. Update. Edit. Destroy]. Each one of the golden seven actions correspond to a HTTP request: [New => GET, Create => POST, Show => GET, Index => GET, Update => PUT, Edit => GET, Destroy => Delete. I don’t want to scare away non-programmers so I’ll chill out a little bit now… Back to the story:


With our newly equip RoR knowledge in mind, our Web Dev class valiantly fought off hundreds and hundreds of errors messages. We battled swarms of the error messages through the Database(s), Model(s), Route(s), Controller(s), Action(s), View(s) multiple times to weld all the concepts and syntax into our muscle memory. It was one hell of a week. It had to be done. Or so we thought!


We came in the following Monday with stories of success and victory. We focused our attention on the new content, which was a few rails commands like: rails generate controller, rails generate model, rails generate resource, and rails generate scaffold.. As we entered these commands into the terminal and watched rails generate the entire structure of an app, we realized that these commands, these shortcuts, could have build our entire tumblr-like GIF apps in seconds rather than hours…


It was an amazing feeling to utilize these new “rails generate” commands after typing out the RCAV process one step at a time. Discovering the rails generate commands made me feel like I had discovered an epic invention such as the telephone, the bicycle, or penicillin for the first time. Hand programming the CRUD app instilled the Seven Golden methods in our static memory, but it also allowed us to witness the power of Rails when the “generate methods” were introduced. At this point I’m not completely sure if it’s better to use the “rails generate commands” or hand right the seven golden methods… There are advantages and disadvantages to each. It’s a matter of perspective.