Showing posts with label Coursera. Show all posts
Showing posts with label Coursera. Show all posts

Sunday, September 21, 2014

And Now Back to Our Regularly Scheduled Programming...



So about that long post that I was going to publish...yeah, that's not going to happen. :)

I had a little adventure going that didn't quite work out, but now I'm back to focusing on Ruby, Ruby on Rails, and the STE(A)M Truck app, which I plan to deploy for the initial test run at the end of the month. To that end, I have restarted my reading of  Pragmatic Agile Web Development with Rails 4, from the beginning and I'm on Chapter 4. I have also restarted reading Beginning Ruby From Novice to Professional, from Chapter 6. Because I've been learning so many different languages, I just want to make sure I have everything straight, before I start the actual coding on the STE(A)M Truck app, so I'm doing little small apps, exercises, and programs to test out my ideas. I'm pretty sure that I have it under control, the only thing that's really giving me a little trouble is allowing the users to add images to the projects and how to display them, but that's something that I'm going to work on after I get everything else in order. It would be cool if I had someone around my level to work with; It would be better if I knew someone who was already good at Ruby and Ruby on Rails that could answer my approximately 13 billion questions. Sometime I go on IRC to ask questions, but it's a little bit frustrating trying to get answers on there. Always helpful...but still, a little bit frustrating. Sometimes I think that people may not like that I only come on when I have a question, so that's a thing, too.

I started catching up in my Algorithms class, this weekend. I had only watched the intro lecture before yesterday, but I'm over half way through week one. I think that I'm learning a lot and some problem solving things are starting to clear up, but there are some math concepts that I really need to brush up on. I've also realized that I don't know enough Java to actually do the programming assignments for this class, but I'm going to still work through the class for the exposure to the material on algorithms and Java. It's not that I don't understand what's going on, I would just have to stop the video and figure it out, and I would rather start learning Java by reading books and doing tutorials, and take what I can from the class. I learned about Koans about a week ago, so I'm going to try those, as well. At this point I can take my time learning Java and just do the class for fun. I'm actually learning a lot about algorithms. I signed up for another Algorithms class at Stanford that starts in October, though. So I should definitely be ready for that. I just looked at my Coursera schedule, I have two more classes that start in 8 days. It's probably best that I'm not going to try to do the programming assignments and learn Java, too. I have a few Java books that I'm going to read. I'll probably start reading the first one on tomorrow; I want to spend today getting set up to get the app that I'm working on done in time.


OT: I don't know how I feel about the iPhone 6. I think that I have a free upgrade, but I'm just not excited about getting a new phone. For one thing, I don't know if I want the 6 or the 6 plus and I know, for sure, that I don't want anything that takes my fingerprints [pic related]. I don't really understand how people can still be so trusting of this kind of thing in the wake of the Edward Snowden leaks. Regardless of how you feel about what he did, we now know the types of things that our governments are doing with technology and surveillance and how companies are cooperating, forced or otherwise, with these efforts. While it may be unavoidable, I'm still not super comfortable with supplying bio-metric information to a large corporation that supplies governments and other companies with my personal information, know what I'm sayin'.

Another issue, is that Apple has been disappointing me since Steve Jobs left. It seems like I've been having all sorts of problems with my upgrades and iTunes. Last night, I upgraded to iOS 8. In order to do that, I had to erase all of my music...since the update required over 4 gigs of memory. I was okay with that. The problem was when I went to load my music back onto my phone, iTunes, on my computer, just assumed that I no longer wanted to enjoy that 4 gigs of music and deleted the whole playlist. So I would just like to thank the good people at Apple for allowing me to spend my Sunday morning rebuilding my playlist for the gym today: 'preciate that.

I don't know anything about Android phones, but I do know the frustration of trying do things on my friend's phones. I think that I'm probably not going to worry about trying to change phones, right now. I'm relatively happy with what I have since I got my music back on this one, for now.

In other news, this was pretty funny...so now I'm also reading The Soul of Man Under Socialism, by Oscar Wilde. I like this guy.


Sunday, August 24, 2014

Coding and Stuff...



Last week, I started getting a little bored with programming in just ruby, so I decided to go back to learning a few other languages. I watched the Google Class on Python and I picked up the Code School Objective-C tutorial, again. I find that studying other languages gets me a away from the syntax of the languages and more into the larger concepts involved in programming. In the beginning, I just thought that you should just learn one language and get really good at it, and then maybe pick up some others a little bit later down the line. What I have found is that once you think you have a decent grasp on the basics of one language, it's productive to pick up another language, with the same paradigm [i.e. object oriented, symbolic, functional...]. This is works for me, because it forces you to really understand the concepts involved, it breaks up the monotony of studying the same thing over and over, and, pretty much, without fail, every author brings a unique perspective which leads to new insights on programming in general. Recently, I've had a chance to start reviewing the code of other programmers who are just starting out and it's made me realize how important it is to learn to actually program versus just being able to code in a language.

Speaking of which, I heard back from the company that I wrote the Mars Rover program for and I am happy to report that I have done my telephone interview and will be visiting the main office next month for the final stage in the process. I think that I am a very strong candidate for this company and I am super excited about the prospect of working there. On Friday, I went to the Atlanta office and meet one of the developers there. He was super cool and made me feel really good about the job and my chances of actually getting it, so...that was positive. Among the things that I love about this company are lots of travel, flat management structure, the fact that you have a voice in the things that you work on, and the people working there are "my type of people."   I can't wait to go up there. My entire experience with this company has been awesome. I can't think of a better place to be for my first, possibly only, programming job.


Which brings me to: I just started learning Java. I have to learn Java for Algorithms I, as well as for this new position, should I get it. The algorithms class starts next week, but if I get this job, they will also teach Java in training. This will give me a leg up for the job and also allow me to develop mobile apps for android, which is something that I'm definitely interested in.

Java is an object oriented programming language, so it's not a big departure from what I already know. The syntax and the things that it requires, such as the requirements for declaring variables, are a little bit uncomfortable after starting [restarting] my programming education using ruby and python. I'm pretty sure that I'm always going to prefer ruby and python to any other languages, but I'm learning to appreciate Java and at the end of the day it's more about the applications and building cool stuff.

Wednesday, June 25, 2014

Programming for Everyone #PR4E


Last weekend, I did Goodie Hack ATL and found another project to work on: STE(A)M Truck. I like this project. My team is coming up with a technology solution to interact with the students, maximize the time at each school, and organize mentors; this is something that I plan to work on over the next few months, at least. We're going to start with a Ruby on Rails web app and an Android mobile app; it should be a pretty neat project to work on.

I really got back into Ruby on Rails, in earnest, this week. I restarted the Michael Hartl's Rails Tutorial, and I'm currently on Chapter 4. I'm finding that I'm able to complete a lot of the sample_app without using the code in the book for anything more than comparison. It's amazing how much more I understand what's going on in this tutorial the second time. I think that my biggest take away from learning to program, so far, is that no matter how enigmatic and mystifying something may seem when you first start, as long as you stick with it and do the work, it will eventually become clear to you. I was confident that I would be able to pick this up, but that doesn't mean that I'm not impressed by the difference in where I was when I started, and where I am now.

Dr. Chuck with one of his sweet tattoos

I also finished my first MOOC this week on Cousera: Programming for Everyone(Python) with Dr. Charles Severance. If you are interested in learning Python, or if you are interested in learning to program and you don't have a language in mind, then I highly recommend this course. The course was better than any of the other Coursera Python courses that I have taken because:


  • It was real world programming: there were no virtual environments. You set up Python on your computer and used it like you would in the real world. I have taken other Python courses that were based in controlled environments and didn't like it. In fact, I was taking one when this course started and I un-enrolled and concentrated on this course.
  • The assignments were appropriate: the assignments for this course were challenging and helpful without being so hard that they required an inordinate amount of time to finish. I only completed two exercises easily; one of them was the homework for week one.

  • Dr. Chuck is awesome: I enjoyed the lectures. He wasn't going over the top attempting to entertain the class, but he kept the videos pretty light and very informative. I also feel like he used the appropriate amount of time covering each topic, I'm not a fan of courses that go too slow and I have dropped courses for that reason. He also wasn't moving through so fast that the average person couldn't keep up [imo]. Another thing that I liked is that Dr. Chuck travels a lot and has office hours with the students in the cities that he visits. Although he didn't visit my city, I enjoyed the suspense of whether he would. If he had come to Atlanta, I definitely would have been there. [He travelled all over the would during this session]
Anyway, I finished the course, did all of the homework, and got 100 on my final. So I'm pretty stoked about the whole experience. The only draw back of the course is that there isn't a part two. If you are interested in taking this class, the next one starts on October 6th. 


Thursday, June 5, 2014

Look, Ma! No Hands.


I wrote my first python program for my homework assignment, today, in about 3 minutes flat just going through and typing out how I think it should go. Besides accidentally using .strip(), instead of using .split(), I nailed it on the first attempt; when I looked at the output, I knew exactly what I had done wrong. My python skills pretty much just snuck up on me.


protip: .strip() was from last week's homework.

I've been focusing mostly on ruby and taking this python course and going to these meet-ups. It's funny looking back at how far I've come in my programming since January, but I also still have an amazingly long way to go...

Monday, April 7, 2014

Monday Morning Update #2

...strong week.



I've been working on the Ruby on Rails Tutorial and my coursera classes. I have to say, this tutorial is much better than the lynda tutorial. I would definitely recommend never, ever doing that tutorial, for any reason.

Using this tutorial, I have learned how to properly use git and github. I got jammed up for a minute there, I didn't realize that I needed to create the repository at the website before I could push things to it, but luckily the Web Applications Architecture Class on coursera really came through for me this week, in that regard. My github is starting to look respectable. I knew that it was a good idea to take that course along side my independent work with Ruby on Rails. The only issues that I have with this tutorial involves one of the gems: execjs. For some reason, I'm getting and error for this gem on everything that I work on. This is how you fix it:
  • Run gem install --version '1.2.4' execjs
  • Add gem 'execjs', '1.2.4' anywhere in your Gemfile.
  • Run bundle install
  • Start your server with rails s and your problem should be solved.
  • Part of the reason that I'm putting this here is for future reference. ;) 


     I wish that I understood exactly what is going wrong with this gem, so that I could fix it and not have to do this with every app, but se la vie, I guess.

    Speaking of the Web Applications Architecture Class, it is still kind of annoying me. The assignments are pretty basic and the class moves way to slow for me to use it as a stand alone instructional for ruby on rails...maybe if I worked ahead, though. He is posting the work 2 weeks ahead though. I just really don't like the class enough to spend extra time each week working on that when I have other resources. I wouldn't go as far as to say that you shouldn't take the class, if you're trying to learn, though. To each his own.

    The other class,  An Introduction to Interactive Programming in Python, is going great! This week, our project was to recreate the game "Rock, Paper, Scissors, Lizard, Spock" that was featured on Big Bang Theory. Me being me, I have to watch the first episode of the show; I had been avoiding it, but I'm willing to give anything a chance, especially since, apparently, the professors [there are 5] think that that show is the bees knees [I just said that]. I hate that show. Hate is a strong word. What I did do was go to their facebook page, see which of my "friends" like that show and proceeded to judge them for it [...not out loud or in text, of course :)]. Anyway, the game was pretty simple and not overly challenging. It's nice to have this class a strictly a programming exercise, while studying so my web development.

    I'm not married to the idea of making websites. My goal is to build useful for tools and entertainment applications. Don't get me wrong, I love the internet and I definitely look forward to being hands on in the deployment and management of my ideas, but just building websites in itself just doesn't do it for me. The underlying idea behind the website is where it's at.

    Monday, March 31, 2014

    Monday Morning Update #1




    The first week of my programming courses on Coursera was mixed. I like the Python class, but I'm really skeptical about the Web Application Architecture Class. It's taught at the University of New Mexico, and it has a community college feel to it. The videos are just good enough to not be funny and the professor doesn't seem very interesting at this point...but we'll see how it goes.

    The Python class, on the other hand, seems like it's going to be awesome. It's taught at Rice and our projects are making games...so that's going to be plenty awesome. The final project is an Asteroids clone. There are five professors that teach the class, I get the impression that most people who work with Python are pretty fun and have a sense of humor.  Exhibit A: the history of the name "Python." The teachers are not that funny, but they're trying, and keeping the class interesting. Neither of the classes are that demanding, yet. I did the first week's work for both classes on Monday.

    On the Rails front, I had to dump the lynda tutorial. For starters, the guy teaching it was moving at 900 mph; that I could tolerate, but the straw that broke the camel's back on that tutorial was the fact that he kept changing things in the application that he wasn't recording or explaining and I got tired of having to do detective work to keep up with the lessons.

    I have since moved on to this tutorial, which is awesome...so far. A part of me wishes that I had just gone ahead and done this tutorial, first, but I may be discounting how much what I learned doing the lynda tutorial puts me ahead of the game in this one. This new tutorial is more like a guide on a journey to learning to develop. Today, I got git all set up on my system and that was pretty cool. So in short, I've done another Ruby tutorial and I've been reading another book...one about git...along with the web design book that I started last week. So...right now, I'm still in the setting everything up phase.

    ...peep it:


    So now, I'm also working on my unix skills, as well. I am having fun, though. I really wouldn't want to be doing anything else with my time, right now. I'm looking forward to this weeks classes, and the next chapters and lessons in my books and tutorials.  

    In my spare time, I'm working on my Spanish and Hindi for 30 minutes a day each and taking Buddhism and Modern Psychology. Also, every week, or so, I take a day or two off and do absolutely nothing, but watch TV and maybe have a few beers. The bad/awesome news is my sleep schedule is completely flipped. I go to sleep between 7:00AM and noon everyday. 

    Monday, March 24, 2014

    Oh Snap!

    I almost forgot to blog, this week! :)





    I've been doing a lot of work with Ruby on Rails, this week. I've gotten a basic understanding of how everything works now, and I'm about half-way through the lynda tutorial. I'm finally at the part where we're actually designing stuff for the website that we're building. It's cool because I'm learning all about servers and databases and how to use them to run websites. I'm getting used to dealing with all of the files and the way things are done and really starting to enjoy it... looking forward to building my own site from scratch...in probably a few more months.

    In other news, I'm starting two new classes at Coursera, tomorrow. The first one, is called Web Application Architectures, and it teaches web development using Ruby on Rails. I'm really looking forward to this course, because while the lynda tutorial is getting me there, this class will give me a more current and interactive experience in Rails, and I can ask questions and talk to other students in the class that are at or around the same level, as I am, in web development. I think that this class is going to be good for the learning process that I have going.

    The other course that I'm taking is called An Introduction to Interactive Programming in Python, which is pretty self explanatory. It's part of a 3 course track that will take me through the Summer and allow me to work on my Python skills while I'm doing my Ruby stuff.

    I definitely wouldn't be doing both, right now, if I hadn't already gotten a decent amount of experience with both languages already. But on the plus side, the languages are pretty similar, and even the course syllabus for the first class says that what we learn on RoR is transferable to other platforms like Django for Python.

    Two more things, I started reading this book, to get an comprehensive rundown on web design, and because in working in RoR I learned pretty quickly that I need to refresh and expand my HTML and CSS knowledge. Once I get the programming/scripting side down, I'm definitely going to have to take some time to focus on the visual design and user experience aspect of web development, not so much to get a job, but for when I start working on my own projects. I can't wait until I'm comfortable enough with what's on my plate, now, to get into that. This new book is easy to read and I should be finished with it by next weekend.

    Another development, last week, was that I got a call about a job programming in Ruby. I did a phone interview that went well; the recruiter told me that he would be forwarding my resume along to the next step in the process. It would be awesome if that turned into a job where I could hone my skills in the near future, but I'll be okay, either way. ;)