Thursday, February 27, 2014

Hello, world!

I'm still grinding away at learning how to program. After a lot more reading, I decided to start my program over from the ground up. I think that I did a much better job the second time. I've been kind of avoiding the actual programming, though, and doing lots of reading. I'm still reading the pickaxe book, but I've also picked up Coding Complete. I'm only three chapters into it, so far, and I already like it. It's helping me fill in more blanks, even this early. 

Through reading Coding Complete, the biggest thing that go reinforced to me is that the process of building software is much like any other project that I've worked on. I guess that we all watch these movies with computer hackers and just get caught up into the fantasy that coders just see a problem and then immediately know how to translate that into a program. Much like anything else, though, writing/building a program requires planning and design before you even sit down to write the actual program.

Another thing that I like about the book is the concept of using metaphors to better understand problems. I feel like the word that he was looking for was similes, though, because he always uses the word "like" when he describes his "metaphors," but "similes"' is definitely less cool sounding. 

Something else that I noticed about these books on computer languages is that they always use big words when they could be more clear using simpler terms. Being a stickler for understanding exactly what someone is saying, I'm looking up a lot of words as I read these books...I guess that's not a bad thing. I'm learning a lot of new words. Well, maybe not actually learning new words, but getting really clear on the definitions to words that I had a tenuous grasp on.

I'm so glad that I decided to learn programming. Originally, I wanted to learn programming because I wanted to build apps and software and I thought that if I had to spend time most of my time at work, then coding was something that I could enjoy doing. It fits my personality. But the more I do it and the more I learn, the more it's really not about either of those things at the core. I still really want to do both of them, but this is more like a hobby. It's fun to learn and it's fun to evaluate and solve problems. I can see my self getting really good at this. 

Monday, February 24, 2014

@hypepotamus

I haven't been making any entries for the past few days, mostly because of extracurricular activities. I'm at hypepotamus, now, working on stuff. It's been a good day. The weather here is nice, too.

The meet up that I went to on Thursday was more of a social...son, I was a little disappoint. Not really, it wasn't the one where they help people set up Rails, but I'm glad that I went. I learned a lot of stuff, one of them being that I'm further ahead than I thought I was. I also got a lot of really good advice on my learning process.
protip: if someone lives in Alpharetta, Marietta, Lawrenceville, or any other area that is outside of the 285 perimeter, they DO NOT live in Atlanta, and you should tell them to stop telling people that. 
The meet up on Sunday, that I wanted to go to, was actually not in Atlanta, which bothers me a little but :). Too many people from the outskirts of Atlanta like to tell people that they live in Atlanta and that the areas around where they live are called "Atlanta." As a result, they set up meet ups called "Atlanta Ruby Users Group" that aren't actually in Atlanta [okay, maybe that one was in Atlanta, but just barely]. So yeah...I missed that particular meet up.

I have been working on my coding, though. I've finished the code academy stuff and started reading the the pickaxe book. I think this one is better...it could be because I've know more now and therefore I understand the topics, but I doubt it. I don't regret reading The Book of Ruby, first, though. Before I started reading this I was planning on re-reading TBoR, reading this one is a better idea. I also found a list of books to read, so I won't be starving for reading material any time soon.

The good news is that the more time that I spend learning, the more I understand and am comfortable with. That isn't anything groundbreaking or anything, but sometimes when you get bogged down into learning something new and challenging, you forget that eventually it's going to click and it's going to be awesome.




Thursday, February 20, 2014

Making Progress

I'm still going and getting more comfortable with ruby; I'm about 70% of the way through the Code Academy stuff, now.

 I've been working more on my program and doing a lot of thinking it through. The more I do it, the more I'm enjoying programming. It's much better when you know more about the language and don't have to spend 5 to 10 minutes thinking about basic syntax.

Investing time in learning something useful that you can apply is completely worth it.

I'm really looking forward to this meet up tonight. I can't wait to get my Rails set-up, so I can start doing those tutorials and maybe I'll  meet some cool people, too. This is coming at a good time in the learning process, for me: I won't be just sitting there like a deer in the headlights, and I may actually have some good questions. I just looked up the location, it's going to be here: Octane.  28 people have RSVP'd so it should be pretty cool.  It looks like there are a lot of pretty new people, too.

Wednesday, February 19, 2014

The Grind

I don't have much to write today. I'm still grinding through the Code Academy stuff and almost to the point where I know all of the basic concepts to programming Ruby. I think that my next step is going to have to be learning about the ruby gems, which is kind of exciting. When I'm finished with this tutorial, I'm going to start learning about the ones that I suspect that I need for this program that I'm working on, it's probably going to be called calender.

I really don't have too much to talk about today, I'm just making sure that I post so that I don't get out of the habit.

Monday, February 17, 2014

Reviewing My Ruby Skills with Code Academy

I went to Code Academy to create a new account [because they do not let you reset the lessons], but fortunately, I had already set up a second account and I just had to start doing the lessons. I'm 24% of the way through now, which equates to 58 exercises in.

Doing these exercises is better now, because nothing is new, and more fun, because I'm experimenting as I go along. For instance, the last lesson that I did asked my to simply create and array, called my_array using the numbers 1 through 5.  I could have handled it like this:
my_array= [1,2,3,4,5]
...and been done with it. Instead of doing it like that, I went ahead and broke it down like this, right here:

my_array= []
for i in 1..5
    my_array<<i
end
Yeah...I'm feeling myself. Anyway, I think that this is the best possible route, for me at this point. I tried to do the Ruby tutorial here, but they started talking about having Apache Web Server and, to be honest, I'm not quite ready for all of that, just yet.

I'm trying to make a program that keeps a "to do" list and it's giving me a hard time. A lot of the problem is that because of the way I went through the material in the Book of Ruby, my reading of programs is much better than my writing. Sometimes it's hard for me to remember the exact syntax of what I want to do, so I think going through Code Academy, one more time, will help to cement the way things work in my mind when I'm writing code from scratch.

For instance, I was trying to write a simple program for my if, elsif, and else statement exercise where it gives you messages when you chose any number except "7." This was my program:

print "Enter a number between 1 and 100:"
number= gets.chomp
if number > 25
   puts "Way off!"
elsif number < 25 && !7
   puts "Nope, but close"
else
   puts "Correct"
end
...or something like that. The problem was that Ruby was evaluating "number" as a string and I couldn't figure out how to change that. I used number.to_i!, but that didn't work. The bad news is that I never figured it out; the good news is that now I know about something specific that I need to learn.

Once I've finished the Code Academy tutorial, I will start back on the other tutorial that I mentioned previously. I'll be more comfortable with learning about Apache and web servers and other stuff once I'm sure that I have the basic programming stuff done.

Sunday, February 16, 2014

...finally.

Well, I finally finished TBoR. I had a few issues...that's why it's been a few days since my last entry. Thursday, night/morning, when I usually do these, my Windows Operating system went into what I thought was an infinite loop of updating my computer. After that, the whole House of Cards thing happened, so OBVIOUSLY, I had to watch the whole season of that.


In between the distractions, though, I finally got it done:

In this book I've covered a lot of ground—from “hello world” to dynamic programming. You've explored most of the important and powerful features of the Ruby language. The rest is up to you. This is where the adventure really begins. - The Book of Ruby
The last chapter, Dynamic Programming, wasn't exactly as exciting as I thought that it would be, but now I'm excited about actually building stuff using Ruby. I've actually already started on something that I can use to practice. I also plan on doing the challenges at <code_eval> and, maybe, redoing the exercises at Code Academy.

It seems like so much longer than 2 weeks since I started that book, and now it's over and the real learning can begin. Even though I didn't work on my coding as much as normal over the past few days, I think that the break was good.

I'm really looking forward to the upcoming week, I found another meet-up in Atlanta called Nerd Club in Grant Park, on Thursday, so I'll most likely be going to that.  As long as I take care of business this week, I should have an awesome weekend coming up, seeing as I've been invited to parties on both Friday and Saturday. There is a strong possibility that my entry on Friday night may get interesting, so I'm going to preemptively go ahead and advise you not to read that one now, if it happens.
 

Wednesday, February 12, 2014

About that Snowstorm...

I think it's finally getting here.  I may have been overly ambitious thinking that I would complete TBoR, today, but I'm still awake.  At least I know that I'll be done tomorrow.

I finished that chapter about Ruby on Rails; it's strange, to me, that I remember HTML, for some reason.  I guess that I shouldn't be that surprised. I was planning on doing a refresher when I start focusing on Rails.  I'm still going to do it. Everything is definitely making more sense now, and after tomorrow, I will be working more on an actual project and spending less of my time on such an academic approach to learning this particular language.

My study of Ruby has once again reinforced the idea that anything can be learned, if you just devote enough time to it. My understanding of not only programming, but computer science in general is so much broader now than it was when I began this pursuit.  Granted, I've been taking online courses and doing a lot of reading, but I was so lost when I began.  I'm still lost now, but at least I know what I need to learn.

I organized my web page favorites in my browser and made a folder specifically for learning code. Once I finished this book tomorrow, I have plenty of great resources to learn from. Most of the sites that I've found have been from reddit. I am subscribed to /r/ruby. /r/programming, and  /r/learnprogramming, although I have only been lurking up to this point.  I'm going to do as much as possible on my own before I start getting help from other people, solely because I don't want to end up talking to someone about this and have them go into a 2 hour lecture on things that I have no idea about. I think that reading TBoR was a strong first step in that regard.  Now that I have an overview, I think that I will be more prepared to get help when I start doing more practice and development.

Anyway, that's today's take on this process. On a side note, I scored 120 on Flappy Bird, today...so there's that.

Tuesday, February 11, 2014

"Snowstorm"

They cancelled the two meet-ups that I was going to this week due to an impending snowstorm that has yet to materialize.  It was supposed to start snowing already, but apparently, that's been cancelled, as well.

I'm reading Chapter 19, now, in TBoR, and it's becoming apparent that I just need to push through and finish this book, so I can start back from the beginning of Ruby. I plan to finish this book by tomorrow, so it's pretty much all I'm going to be doing for the rest of the night. Learning new things is always the boring part of anything, mostly. It's the applying the part that becomes both fun a frustrating.

At this point in my "learning" the Rails isn't working as advertised and this is really what I'm having a problem with. I was trying to work along with the book, but this version of TBoR was written for versions of both Ruby and RoR, which is making the whole process...challenging.  I'm one of those A type personalities that likes to understand completely what I'm doing at all times so the urge to start over is driving me to complete this book ASAP. The good thing is that I have a much better understanding of what I need to learn.

Sunday, February 9, 2014

Getting there...

I spent the lion's share of my day, yesterday, watching this: The Story of Science...I regret nothing.

I did a little bit of reading, though, and I caught up today.  So basically, what I'm trying to say is that I'm on Chapter 19 of The Book of Ruby. I also feeling better about where I am. To celebrate, I started building my first app/program. I can't do much, but I think this is going to be the first step of my learning where my actual programming ability starts growing.

I haven't started spending a lot of time coding, yet, because I told myself that I need to finish reading the book before I dive in a start spending too much time. The reason that I'm doing this is because, not only will it give me incentive to finish the last two chapters, but when I go back through the book looking for answers, I will have a comprehensive idea of what's in that book and what I need to look elsewhere for. Plus the next two chapters are about Rails and Dynamic Programming, which both sound dope.

I've experimented with Rails a little bit, but I can't get it to work properly so once I've finished reading this book, I can dive into that a little more, as well. Anyway, I'm excited again about learning this stuff. Sometimes, you just have to push through the boring stuff until you get to the other side. Generally, when you work hard on something and put in the effort, it's worth it.  Especially, when it's something that you enjoy doing.  I'm pretty sure that nothing exists in life that is all fun; everything in life has an aspect that sucks no matter how awesome it is.  If you don't believe me go record a song, or play a sport, or start a business...or take a trip.

Saturday, February 8, 2014

...still

Still working on my Ruby skills. I read something motivating today on reddit: If you feel overwhelmed! KEEP AT IT! So...I'm keeping at it.

I finished chapter 16 in The Book of Ruby. That chapter made a lot more sense, to me. I have 4 more chapters, after that, I'm going to reread it slowly whilst doing other Ruby shit. I've also finished my first set of lynda.com videos. The new plan is to get an overview and then go over the materials again until I understand. I'm also only going to study Ruby until at least the end of April. I think that I need to get really strong in one language, before I start trying to learn the others...irregardless of what my cousin says about me being able to do Ruby and Python at the same time.  However, I will take his advice and focus on Python, next.

It's a good thing that I've always enjoyed computers and programming.  I'm really learning a shitload and for me, this journey is more about being able to make a living doing something I like more than anything. I was a marketing consultant and I really didn't like that job for several reasons including: corporate processes, lack of respect for marketing, and the lack of a culture that was anything approaching a meritocracy.

Don't get me wrong: I love marketing, but if I had the choice to go back to school, knowing what I know now, I would have studied either computer science or engineering and then got an MBA.  But that's water under the bridge and I did study marketing because it taught an important field, that I'm interested in...I just really want to be in tech and I really enjoy programming and solving problems.

To be honest, I'm a couple of days behind where I thought that I would be in The Book of Ruby, but I'm not disappointed.  I'm taking all of these online classes, but I realized today that completing these classes with a good grade is not the goal. The goal is to learn programming and class performance means nothing: I have my degree already and getting a job in this field, at this point, will be based on what I can do and not showing potential employers that I can finish school.

Friday, February 7, 2014

On to Chapter 16: Regular Expressions

So I powered through the Marshal chapter with the full acceptance that I don't really understand this shit.  I've been doing a million things to get the momentum to finish that chapter.

One of those things was the Rails tutorial, that I was talking about yesterday. Everything was going swimmingly until I got to the part about installing Rails.  I was pretty sure that all of the gems and "plug-ins," for lack of betters word and understandings, like Rails and Git were already bundled and loaded into my system with the original Ruby installation.  At this point, I'm pretty sure that I was right, but the command "subl" is not working for some reason. Originally, I thought that it was because I was using Aptana to try the first exercise, so after a little bit of trying to figure it out, a little bit of reading "Infinte Jest," and a little but of attending to my free online courses; I decided to just try it through the PowerShell, which, btw, gave me the same error.

Side bar: have you read Infinite Jest? I'm seriously on like the second page of that book.  It's so hard to read.  I feel like this guy intentionally tried to learn every word that normal people don't use on a regular basis and tried to jam it into the first two pages of this book.  This book feels super pretentious and the only reason that I'm even going to finish reading this book is because a friend of mine that I used to date recommended it.  [Incidentally, she's been acting weird.  I'm wondering if it has something to do with Valentine's Day or maybe a new bf?] Also, he is considered one of the most influential artists of the last 100 years or something like that and he also committed suicide.  The latter my seem like a weird reason for interest, but I think that people who kill themselves had to be thinking about some really deep shit so I'm always interested in getting insight into people who are in their own heads thinking to the point of taking themselves out.

Anyway, I'm basically frustrated with both Ruby on Rails and my lack of an ability to address even the simplest problems with Ruby after all of this effort.  I'm determined to learn to program, though, so it's just a thing, right now.  I refuse to give up.

Now, I have gone back to the book of Ruby...oh, and I've also started watching the lynda.com video tutorials for Ruby on Rails.  I've decided to learn this stuff by brute force, if necessary and if nothing else, I will be prepared to ask 10 million questions next week when I go to a Ruby meet up next Wednesday.  If you live in Atlanta, like me, this is the meet up: The Atlanta Ruby Meetup Group Monthly Meetup.

...happy programming.  One day, I'm going to get there.

Wednesday, February 5, 2014

Working through the Burnout

I'm sitting here watching the newest Workaholics episode.

The Book of Ruby is burning me out. I haven't read anything in all day. I think the back-to-back chapters on YAML and Marshal was a little bit too much; I had to take a break. Anyway, I went ahead and got started with Ruby on Rails.   I'm using this: Ruby on Rails Tutorial: Learn Web Development with Rails.  I came up on it reading this article about learning RoR: Your Step-By-Step Guide To Learning How To Code And Getting A Job In This Lousy Economy.   Although I'm only at the beginning, it's a good escape from trying to concentrate on remember syntax, and starting this now will be good for re-enforcing what I've learned so far in Ruby, I hope. 

The Rails tutorial is supposed to be based on building actual projects, too, which I think will be good for my learning since I haven't really been doing actual programming exercises since I finished the Code Academy tutorial.

I've also been taking free online courses on Algorithms, Cyber-Security, Networking, and Entrepreneurship, so that is also a cool break from the book reading. So that's what's up, right now.

Tuesday, February 4, 2014

YAML and Marshal

Today I read the chapter on YAML and started the one on Marshal in The Book of Ruby...good times. :)

It's hard to remember everything, but I'm not really trying.  I plan to re-read the book when I'm done, as break from reading and working on other learning materials.  As I understand it, and please correct me  if I'm wrong about this, the coding that I would normally do in Ruby to make a program is the software that will be stored on my hard drive, and the information stored using YAML and Marshal are the temporary information that will be stored in ram for use in the program.

Apparently, you cannot save methods for for reuse using YAML, but you can do so using Marshal, which kind of makes me wonder why anyone would use YAML, at all.  This seems to be a theme in ruby, where there are multiple ways of doing things where one way is clearly more usable than the other.  If I am right about that, and I eventually write a book or tutorial, then I will only document the best practices and eliminate the things that I consider less than optimal.

Hopefully, I will finish this book by the end of the week and then start learning Ruby on Rails.  I have somethings in mind that I want to eventually build, but I think that I'll stick to the exercises on on Code Eval for now; I don't want to bite off more than I can chew and the levels of the challenges seems like a good way to work my way through the language.

Post #1

...so I decided to start writing this blog to become a better person.

I just finished reading Post Office, by Charles Burkowski last night night on the advice from James Auchter through his blog/mailing list.  The purpose is to work on my writing and learn from other people who are interested in the same things that I am.

I have a goal to become an internet/software developer...I'm starting from scratch.  Toward that end, I have done most of the tutorials on codeacademy.com and I am currently reading The Book of Ruby.  I feel like I'm learning a lot and I can do most simple things, such as, conditionals, methods, classes, etc., but I don't really consider myself a programmer, just yet.  Though reading The Book of Ruby,  I have decided that there are a number of edits that could be made to that book to make it easier for people who are new to programming.   I imagine myself doing that one day, once I actually learn the language.  Maybe I'll write my own book one day, who knows.

While I was working on the python tutorials on on code academy, I would post my achievements on twitter.  I was probably doing this just to make people think I was cool or something, but I tell myself that I am doing it to prod one of my friendswho follow me on twitter into picking up programming so that I would have a someone to discuss this stuff with.   Anyway, what happened was that I got a new follower who directed my to the CodeEval website.  This is one of my new favorite things and I am currently working on my first challenge on the site.  I needed this, for a little bit of direction in my learning.

Anyway, if you've read this far...that's awesome.  Keep reading my blog and comment often; we're into the same stuff.  I will be grateful for any advice and be happy to give mine...I'll try really hard not to be weird. Other things that I do are foreign languages, movies, cool tv shows, astronomy, and go to the gym.  I like most forms of music.