April updates

It’s been a while, so I thought I’d catch you guys up with where I’m at. I’ve been working with Cash Music the past few weeks and it’s been great! I’m learning a lot, mainly PHP and MYSQL stuff so far.

School is also going great! Still taking Intro to Internet Programming, C, Java, and Intro to CS. I’m going to take Javascript this summer, and in the fall, I’ll take Databases, Advanced Java and PHP, and then my associate’s degree will be complete!

Ok more coding to do!

PHP and classroom learning

So I will be starting a new project soon…which I will describe more fully as it develops, but it has led me to learning PHP! So far so good. It looks a lot like C, this I can do. Right now I’m just going through the Treehouse php course.

Speaking of C, school has been a little frustrating here and there. My Computer Science classes focus really heavily on memorization and getting everything totally perfect on the first try, which has NOT been my experience of actually programming. Being able to look at a loop and knowing exactly what will come out is important, however, actually running that loop and seeing what comes out works, too. In my real life programming experience, I’ve learned the most from just messing around and seeing what happens, which is the opposite of my current classroom learning environment.

But I’m not gonna hate on school, I feel like I’m also learning a lot! And more than learning, I’m also cementing a solid foundation of what I already know. I’m also meeting other people who like to code, and making some real life buddies, which is always good. I spent a lot of time alone in my bedroom in January learning by myself, so it’s nice to get outside and talk to humans.

 

School continues…

I’ve been so busy with school and music that I’ve forgotten to blog! Anyways, for the past 2 weeks, I have been doing nothing except homework, going to classes, and writing songs. My band La Sera is going to record a new album in April, so every spare moment I have in my life right now is going towards writing songs. However, that’s also the best part about being a full time student right now! I’m still learning a ton all day every day, and it’s nice to be so productive right now.

I’m only 2 weeks into classes, so everything is still pretty easy. We are going over HTML in my Internet Programming class which is super easy, but always worth refreshing. C and Java are more difficult, but also pretty exciting. My teacher for both those classes (he teaches both!) is really into machine/assembly languages, so I feel like I’m learning a lot about how computers truly work on the lowest level. My rails online course will start next week, super excited to get back to making web apps.

That’s it for now! I’ll keep updating through the semester. Someone asked me the other day why I chose community college over bootcamp, so I’ll quickly summarize. It’s WAY less expensive, about $3k verses $15k, however it also does help that I already have a Bachelors so all of the general education requirements are already fulfilled. I’m taking 4-5 classes a semester, all computer science, and I’ll be done with my degree by November. That means about a year of school for $3k. I feel like a 3 month bootcamp is just too quick. Also, spending a year on the degree will really let me know if this is something I want to do. It’s easy and fun to do a quick bootcamp and land a sweet, well paying job, but if I don’t actually want to DO that job, it’s a total waste. This way, I can work towards the degree, and after a year, I will have a really good handle on what I want to do long term. It isn’t a race for me (although I understand that for other people, time is a much more important issue). Luckily, making music has provided me with the perfect opportunity to be able to take time off and go to school. (Although I am eating a LOT more mac and cheese than I used to 😀 )

School has begun!

Alright, so I just took the last week off to get mentally ready for college. It’s been 7 years since I graduated from Rutgers! My way to get “mentally ready” was to just binge watch TV shows and movies and lay in bed a lot and pet my animals (2 cats and a dog). I’m sure hiking, meditating on top of mountains and swimming in lakes of serenity would probably have been a more efficient use of time, but hey, what’s done is done.

Today was my first day of school! After getting into one final class that I thought I wasn’t going to get into, my final schedule is… Intro to Computer Science, Internet Programming, Rails, C and Java. Yeah, that’s a lot of computer classes. Maybe I overdid it? NEVER!

The “internet programming” class is essentially everything taught in Treehouse’s front end web dev course…HTML, CSS, Javascript, Ajax, etc. This is probably the most directly applicable class for my flexible amoeba of a future career, but who knows! I’ll be taking a database course in the fall, and maybe that’s where my true passion resides. That’s why I’m glad I’m going the college route..it makes you take classes you wouldn’t ordinarily want to take. I don’t really get to pick and choose my way to the degree.

Ok homework time.

Fiiiiiine, I’ll make a web app

The other day, Apple officially slapped me in the face (rejected my iphone app). I was heartbroken (not really). Anyways, tonight I was bored so I adapted my iphone app into a web app!

I used python, Flask, deployed it to Heroku, and then pointed my personal domain’s DNS to the heroku site. At first, I was going to use a postgreSQL database to store all of the possible first and last names, but that got too dramatic. (I forgot how to do it), so I ended up just having one file.

First, I included a makename() function that had 2 lists (firstnames and lastnames). Then, I assign firstname to a random item from the firstnames list, and I did the same for assigning the lastname. Then, the function returned a concatenated fullname.

first_name = random.choice(first_names)
last_name = random.choice(last_names)
full_name = "%s %s" % (first_name, last_name)
return full_name

And here is the 2nd function:

@app.route('/')
def got():
    dj_name = make_name()
    return render_template('index.html', dj_name=dj_name)

So that was that! All I had to add into my index.html template was {{ dj_name }}! I also put a .css file into my static folder cause I like to get **stylish** 😀 For a good guide to walk you through creating a flask app that will successfully deploy to heroku, follow these instructions.

Javascript

So I spent a long time yesterday learning java, and today I decided to skip around and learn something else. While I have definitely dabbled with javascript, jquery, etc over the last 6 weeks, I decided to dive into javascript today.

The other day, someone told me that there’s a million jobs right now for people who are good at javascript. Sounds good! I’ll also learn node.js and angular. Might as well!

Whenever I catch myself on reddit for too long, I instead go to team treehouse and just pick a random course and learn. It’s probably the best habit I’ve developed this year. If I have nothing better to do, I always just keep learning.

Java

Ok so in a series of events, it turns out I will be taking Java this spring instead of Objective-C! I was instantly terrified, because I had heard people talk about how complicated Java was. So instead of remaining intimidated, I decided to take the Java Basics course on team treehouse, and guess what…it’s not so scary. So far, it just looks a lot like C. That’s something my friend Zed has been telling me this whole time, is that after you become comfortable with a bunch of different languages, you realize they are all pretty similar. They all do the same stuff. I’m sure the differences between them become more glaring when the codes become more complicated, but at this point in my education, I can just focus on the similarities.

Zed’s advice to me, and now my advice to you, is to learn as many languages as you can. The most important skill to learn early on is the ability to learn new things. It’s easy to google for the exact method you want in a language (wait… this is ruby…is it .touppercase? .toupper? .upcase? gah!) and no one expects someone to have everything memorized all the time. But I know to google “to upper case ruby”, and can very quickly get the answer and move on. That’s what’s important.

Efficient googling is a great skill to develop! Never be scared to google, and start recognizing Stack Overflow as your new best friend. If you end up getting an insane error in a program, just copy and paste that long error message into google. You will be surprised. A lot of other people have gotten that same error before, and there are answers!

Going to continue learning Java today, right now I’m still using team treehouse, but I’ll probably watch some lynda.com videos later.

The web app IS the web site…

Ok so the other night, I spent a few hours on the Ruby section of Code Academy. Even thought I’ve already been through lots of ruby tutorials, doing another can’t hurt! The best part of teaching yourself to code are the resources…everyone out there who is really good at coding seems to build their own “learn coding!” website, meaning that there are SO MANY websites that go over all of the different languages. Endless practice!

Right now I’m watching a video on Lynda.com about rails and how it creates pages dynamically. That was actually one of the biggest conceptual hurdles I had to overcome when learning Django (a python equivalent to rails). I had always written all my websites as static sites, and I didn’t know there was an alternative way. This means I would write the files (index.html, aboutme.html, anotherpage.html, etc) and upload all the images (bio.jpg, ottersholdinghands.jpg) and just upload them all to my godaddy file manager and tada! Website!

What I’ve since learned is that there’s an entirely different way to make a site: dynamically. This means that when someone goes to your site, the page is created by your framework right then and there. I thought that when I learned Django, it would mean that I would write a little poll app (using their wonderful documentation) and I would somehow install it on my regular, static site. This is NOT how this works, and it took me a good solid week of frustration to figure that out. I would be constantly asking my friend Joe “Wait so where do I put this web app?! I want to put it on my site!” and he was pretty confused. Fair enough! The web app IS the website.

If you’re going to be using a framework (django, rails, etc) to make a site, that means that everything about the entire site is going to be written using the framework. You’re not going to write your normal index.html file and then upload it anywhere. You’re going to write your index.html file and have it as a template for a view. This is why the MVC (model view controller) pattern is so important to learn early on.

Ok back to rails!

FizzBuzz, Odin, jQuery…

The first thing I did when I woke up today was code FizzBuzz. If you’re unfamiliar, it’s a popular script that every programmer should know how to code. I try and randomly write it from scratch every once in a while, because the best way to learn something is to 1) memorize it 2) see how long you can go without thinking about it 3) and then recall it successfully. That last part is the most important. So, for example, when I first learned FizzBuzz, I would code it from scratch once a day. When this wasn’t a challenge anymore, I changed the exercise to once a week. Now I do it about every 2 weeks. The longer you can go before you code it again (correctly) the better. However, if you go to write the code and mess it up, that means you waited TOO long, so relearn it, and then try again sooner next time.

But it is also important to remember that coding isn’t all about memorization. What I am trying to memorize during this exercise is not the exact wording, or the syntax, or even the language at all. I am trying to memorize the routine of coding. I am learning the way to code, the exact script I’m writing makes no difference. It is important for me, in this programming whirlwind, to maintain what I currently know and build upon it. The skill I’m working on when I do this is learning to solve problems using code.

This morning I wrote fizzbuzz using python, but I think I’m gonna do it in javascript, ruby and c in a little bit.

Something else I like to code from scratch every now and again is how to find prime numbers. Try it: write a program that takes a number from user input, and finds all the prime numbers between 0 and the given number. I tend to like math puzzles the best. If you ALSO like math problems, definitely check out Euler Problems.

Someone on Instagram this morning recommended using The Odin Project, so I decided to give it a shot! So far it’s great. It walks you through a ton of resources if you want to be a web developer. As a way to practice my HTML/CSS skills, I just spent the last 2 hours recreating the google homepage (as per their recommendation). Tada!

The next thing I worked on today was the jQuery course on CodeAcademy. You will soon realize that I jump around a LOT. This tends to keep my focus more, and I can only work on one subject for a couple hours before I start to fade. I’m gonna make a fun jQuery project tonight…

 

Treehouse Front End Web Development course

Ok so I thought a full rundown of my experience taking the Team Treehouse Front End Web Development course would be fun/helpful. This website has been CRUCIAL to my learning. It’s really kept me going when I felt like I didn’t know what to do next. If you’re currently trying to teach yourself to code, it is definitely in your best interest to join this site, join a track, and just chip away at it every day.

The first sections are HTML and CSS. At first I was like “no thanks, I’m not a designer, I’m going straight to back end development, I don’t need this!” and now I’m not so sure. Taking these first classes have helped me SO MUCH over the past month. When you’re working on templates in your Django app, totally understanding HTML is necessary. When you’re learning Javascript and JQuery later on, you NEED to know how the DOM works. Sass is amazing, but it means nothing unless you know CSS. Oh man, and learning Sass on Treehouse is amazing because the creator himself teaches the lessons and he’s hilarious.

The course then goes through basic programming and javascript. Even if javascript isn’t your main language (mine is python), it’s all the same stuff. Just slightly different syntax. Javascript has lots of {}s.

Then there’s kind of a random HTML forms course. It’s short, and good to know. Just take it and move on.

Nothing will make you want to learn JQuery more than first taking the “Interactive Web Pages with Javascript” course. Oh shit, if I remember correctly, THIS course was really hard. The instructor moves really fast, so if you don’t get it, DON’T WORRY. I barely made it through this portion, and still got out the other side. JQuery is waiting for you, and it’s beautiful. You must get through the Interactive course so you can get to JQuery, where your mind will be blown and the world will seem limitless. Funny enough, when I lived in the computer science house at RIT for 3 months, the creator of JQuery lived on my floor. Hey John!

Then there’s a couple more random HTML courses you should take just cause you should definitely know that stuff. And then AJAX! This was a great course, and if you do want to work in front end web development, basically all websites use this and you need to know it. It’s essentially a way for a website to send the user more info without them having to refresh the site. This will make sense to you, and it’s lovely.

Accessibility and Web Optimization left no real lasting impressions on me, I don’t even remember what was in there. But then comes Console Foundations. If you aren’t already comfortable using your Terminal (or command prompt), this is a very important step. Web dev takes place in the console, and that will be where you hang out, so get used to it. Typing commands into your Terminal also makes you feel like a hacker, so get ready to rollerblade to your nearest subway station and hack the world.

The last step of the track is “Git”. This is THE way to keep track of all your projects, and everyone uses it, and so will you. Also, go ahead and start a Github account and start uploading everything you do. It’s nice to have a place to go to look at all your old code and see how much you’re improving!

All in all, I would say DEFINITELY take this course. It’s free for the first 2 weeks, and $25 a month after. I got the free account thinking I was going to cancel it right when the free trial ran out, and now I view this site as a valuable tool that I use every day. Also, you can tweet to the teachers and request courses, which rules. Thanks Kenneth! (He’s the python teacher)