Weeks 1 and 2 Done (Before the end of week 1)

I just finished up week 2 of the new Coursera course I’m taking and wanted to pop in to jot down what I thought and share my first assignment. Week 1 was an introduction and some basic information about how the internet works. Some of it was interesting, but for the most part it was a review for me.

Week 2 got a lot more interesting as we were introduced to codepen.io, a in browser editor for HTML, CSS and JavaScript. You write code and it automatically displays the result in a window right along side. Pretty cool. The first part of this week we went over simple HTML which was a review for me again, but I was really in need of a refresher so it was good. Plus I’ve never worked with HTML5, although it seems the basics are identicle to HTML4. These basics came back to me fairly well and was again reminded of when Mrs. Franks would come get me from my 9th grade English class to go to her Grade 12 Information Processing Class and help explain the concepts of HTML. If I recall she even gave me a copy of Adobe Dreamweaver to learn at home and then teach to her so she could teach her classes. Looking back I wish I was given a chance to really learn how to code in High School. We didn’t have a CS course and I knew more than all the teachers about it. At that point the thought never crossed my mind to do more self learning. Stupid kid.

After going over the basic HTML we got to one of the parts of the course I was most excited for. CSS! I had never ever touched CSS before. I had a basic idea of what it was, but that was it. I had always tried to muddle through and make ugly web pages using presentational HTML. Not good, but it was all I knew. CSS is cool. And so far what I’ve learned and looked up hasn’t been too hard to do! Yay! Memorizing it could be another story, but on of the instructors said flat out not to try to memorize it and that CS was as much about knowing where and how to look up information as it was about knowing the information. So, that’s cool and I’ve started to try to build up a library of bookmarks to help. I’ll list what I have so far for Web Development below.

Do you know of any great resources I’m missing? I’d love to add to my collection!

Know, onto what I made for my assignment. I had to pick a topic I could write about and come up with lists and tables for and write a webpage in HTML and CSS. It needed to include a few specific things too. Here, I’ll post a snip of the assignment for you.

Instructions for Week 2's Assignment

Assignment Instructions

So, without further ado:

Comments? Critiques? Thoughts on how CSS should be organized? Mine is all over the place! Should it be in order relative to the HTML that it styles? That wouldn’t always work when you are styling elements that appear in multiple places… Is it generally fine to have it disorganized?

Leave your thoughts, comments and resource links below.

Advertisements

Wannabe Code Monkey Heads Back to Coursera

Hello all. It’s been far too long since I wrote here or even tried to continue my coding journey. Back in June I had my work schedule switched around on me. It’s actually given me more free time. Time I planned to use to learn to code. But for the last 4 months I’ve been doing . . . well, not much. A little bit of work on the house and in the yard, but really, not much at all. It’s time to get back to work! I’ve enrolled in a Coursera Course. It’s called Programming and the Web for Beginners. In all honesty I’m less interested in this course than I’d like to be, but it’s the first course in a specialization on Java programming that I’m very interested in. However, I’m not enrolling in the specialization itself, but rather hope to just jump into the individual courses as they come up. To enroll in a specialization on coursera costs $350. At this time I don’t have the funds to invest in this little project of mine, so therefore I’ll stick to the free parts.

duke

The course doesn’t actually start until October 12, next Monday if you’re reading this as it’s posted. It looks like it’ll cover some basics on the internet (I should know most of this already), some basic HTML (I taught some HTML for my computer teacher when I was in High School… She actually pulled me out of other classes to come teach her students so this should be simple), CSS (never touched it, but always wondered about it!), Javascript (this will be new) and a 7 Step Design Process that should be useful for all types of programming (!). I’ve started to preview week one of the course and they included a quiz with sample questions taken from throughout the course. I got 8/13 correct. The ones from the first week I knew the answers to and some others I got lucky with my guesses, although they were educated guesses based on what I know of code.

This is a 4 week code, with an estimated 3-5 hours of study required per week. This shouldn’t be too tough for me as I know have 4 days off a week (although in that time I do have some other responsibilities such as looking after and spending quality time with my 2 year old daughter and doing work around the house). I’d like to encourage anyone reading this that’s interested in coding to join me! It’d be fun to get a group that’s doing this together so we can discuss it as we go. If you think about it, the course can be done in as little as 1 hour a day after work (if you work a traditional 5 day work week). Or take an hour after the kids go to bed, whatever it might be. LET’S DO THIS!

MONKEY SCRATCHES HEAD A LOT

Alright, so you might have noticed I’ve been gone for a while. I stopped coding for a while, or trying to code as the case may be. Why not? Well, I just wasn’t learning much with the methods I was using. Essentially all I was doing was copying what I saw in various tutorials or books into Eclipse and calling it a day. But I didn’t really learn what I was doing. I was also very hung up on only trying to learn java and/or android development. Android development is still my end goal, but I have taken a step back. Over the last 4 weeks I have been learning to code in a new way, and I’m ready to start writing about it and sharing it with you.

Image

This post is just an intro to what I have been doing. I found Coursera. Basically, this site lets you connect to many high level institutions and professors. Unfortunately the Android Development course I signed up for hasn’t started yet or even given a start date. So… I am taking a Python course. I feel it will still benefit me when I move onto Android Development because I’m learning how to think logically like a programmer needs to. If, Else, For, While and so on all apply. As do the design process and thinking. And I can actually learn in this format. Coursera is structured with video lectures from the professors, quizzes and mini projects. The mini projects are great as you get a basic template and specifications as how the program must work, but then you must put in the code. It’s not just copy and past. It’s using the information from the lectures and examples and applying it to the given project. These projects are then peer graded, so you get to learn more as you look at other student’s code and implementation.

I will follow up this post with a few more in depth posts about the various projects. This week we are making a pong game.

 

Designing a GUI

<BlogPost>
<CheesyAnnouncerVoice>
      Hello and welcome to the next ‘chapter’ in my Quest to become a code monkey. When we last left our hero he was slightly disenfranchised with his grand journey. He was not learning much and needed to find something       new.
</ CheesyAnnouncerVoice>
I mentioned Hello, Android and that is what I have been focusing on. I think I’m falling into a nice rhythym with it. I’m not going quickly but what I do is read through a section (usually on coffee breaks at work) and then later go back and follow along while doing the actual coding. I think it’s working pretty good and is even making more sense. There are still parts where I stratch my head and wonder why that code was written and exactly what it means. But I think with more practice and use it will start to become more clear.
The GUI for a tutorial app with Title Text and Four Buttons

The Launch Page of the App Hello, Android is teaching me to build

So far I’ve been learning about UI set up. With that I have set up a launch page UI including title text and four buttons as seen above. I feel pretty solid about that code and how it works. When we start linking the buttons to actions I get a little bit lost. onClickListener is what checks to see if the button is hit or not, but I need to go back and at the surrounding code to get a better handle on it. We also learnt about setting up the UI for different screen orientations so that everything looks nice regardless of whether the user is in landscape or portrait mode. This allowed us to set up our first table view so we get the nice columns in landscape mode. I also set up an About page which is triggered by hitting a button. This page is styled with a Theme so that it appears as a pop up with the original activity visible behind it. That was pretty cool.
The About Button triggers a Pop Up with Text describing the App

The About Page themed as a Pop Up box

Finally we started setting up the settings options. I’m pretty sure this is just magic. I didn’t really set much up and yet, there’s the page. I guess we haven’t set up the results for it yet. We don’t have music to turn on and off and we don’t have hints yet, so maybe when those features get implemented we’ll see how they link up.
A settings page with 2 check box options

The Settings Page

It’s been fun doing this coding and seeing the results on the emulator. I wish I had made coding more of a priority this week. It would have been great to have the basic game play coded so that while my mother is visiting this weekend she could check it out since she used to play a lot of sudoku. Oh well. Can’t win them all.
</ BlogPost>

In Search of a New Source of Knowledge

UI Fragments on a tablet vs a Phone screen

The most exciting part of my recent lessons

This will be a pretty quick update. I’ve been following through the Lesson’s on Google’s Android Dev site and while the first lesson on Building Your First Application was great and really helped, I am starting to become disappointed in the lessons. I’ve done a few more lessons covering subjects like Activity Lifecycle, Supporting Different Devices (and Lauguages) and Building a UI with Fragments. It seems like beyond that first lesson where we built an app the lessons have become more theory and less practical. This shift has made it harder for me to follow along and get anything out of the lessons. Without actually having something to code it has become harder for me to get a feel for what is truly being taught. I understood the part on Languages just fine and think that the different values folders is a great way to handle it. Easy to package and add new languages after the fact. Different device sizes is handles in a similar way, but since it dealt with different layout files and didn’t walk through how to create them the lesson was lost on me a little bit. I am hoping that I’m still getting a bit of understanding from them, and that later on I will find myself using this information. It is neat that they come with sample applications you can download, but I would much rather they walk us through CREATING those apps so we can see how it works. At this point I think it will soon be time to find a new learning resource. I’ve been reading through a book called Hello Android and I think it might be my next main focus. The introduction mentioned creating a Suduko App and then as you learn new things you keep adding to the app. That sounds interesting and like a better way for me personally to learn. I have no doubt that in the future I will be returning to the Google dev site to look things up and learn about specific things as they come up, but for now, I need something holding my hand as I go and that keeps me coding. I guess I’m a learn by doing type of person, not a learn by reading.

On a different note I have used dropbox to import the application I made and mentioned in my last post to both my Tablet and Phone in AIDE. I was able to successfully compile the project and run it on both devices so that is good news. It means I should be able to create apps in Eclipse on my PC and then work on them while I’m on the go. I think this will be important when I get to the stage to be able to work on my own projects as I can utilise breaks at work and whatnot to do it.
One last thing: I’m really happy to see my blog getting as many hits as it has been. Thanks to all who have been visiting and commenting. especially to those that have answered a few of my questions. Please keep coming around and if there is anything specific you want me to write more about just let me know.

Hello world!

“Hello world!” was the default title for this post. It was created by wordpress and meant to be changed. The only problem is, it’s pretty much the perfect title so I’m leaving it there. This post is going to be short. Just a quick introduction telling you about this blog. It’s going to document my quest to become a Android Developer. I’m going from close to zero coding experience to (hopefully) being able to code and publish my very own app. I’ve got an idea in my head and I’m working to make it a reality.  I hope you join me on this journey. If you’re thinking about learning to code this might act as a great way to learn. At the very least you can learn from my mistakes. I won’t be writing tutorials, but I’ll be talking about what I do and what works or doesn’t work. Perhaps you know me and want to see how this personal project is coming along. Feel free to subscribe, share and comment. Hopefully this will be at least some what enjoyable.

Road Blocks

 

 

July 21, 2012

 

 

 

I started trying to learn how to code Java application 20 days ago when I had an idea for an Android App I would like have and use. Since no one else has made it I thought that I should learn how to and make it myself. I like to think I’m pretty smart guy. After all I’m employed as a PC Technician… How tough could this be?

Image

Turns out, it’s pretty tough. I hated math in school and it turns out it’s used a lot in Java Programming. I started out by trying to jump right into Android Development. Now, what is a Computer Technician to do if he wants to learn a new school? Yup, you guess it! http://www.google.com. The first few android developement tutorials I came across assumed I had a fully working understanding of Java Development. I did not… Back to google I went. This time searching for java development. I quickly learned that youtube video’s were going to be the best way to learn. I found what I thought was a good java tutorial video series and followed Oliver’s directions to install NetBeans. Pretty soon I had coaxed my code to print out the simple phrase “Hello World!” Since would be the first time of many that I would code those words. Hmmm, well that’s pretty simple. By the 13th lesson I was getting input from the user. Now, I start to see something that I will need in am own app. I know I am still a very long way from being able to make it. Soon I was getting data from a file saved on my computer and writing data to a different file. Things were looking up and I was feeling pretty good about my chances of being able to make a working app one day. I found myself becoming consumed with learning all I could about java. Reading tutorials at work, watching youtube video’s on my coffee breaks and looking forward to getting home to netbeans to try it out. I didn’t understand everything I was reading, or even everything I was watching, but when I was able to try it out in netbeans while following the program I could get it to work. Almost always…
 
One morning before work I got up and set to work on the 17th video in the series. I had watched the video a few times the day before and although it was more complex than anything I had before I thought I had a handle of how it worked. It was a basic calculator program that could perform basic mathematical operations that the user input. The only issue is it didn’t work for me. Something was wrong, and before I could work it out I had to leave for work. It would bug me all day, but I had to move on. My main work PC was down, limiting what I could do during the work day. With no manager in to approve a new PC I found other ways to keep my self amused. I installed {AIDE} on my Galaxy Note and found a tutorial to start coding for Android. This seemed like a win, so I wasted away the wait times in my day as diagnostics ran on the few PC’s in my shop. The guide was for using eclipse, but I figured it was be similar to use {AIDE} since you can import projects from eclipse anyway. I started a new project and went to work on making my PC output the word’s, “Hello World!” Hmmm, where have I seen that before? The guide went on to show how to change the colour of those words. I changed to them green, and recompiled the .apk. After discovering the the guide had some syntax errors I got the text to change colours. Next the guide went on to add a new layout element: A text input field. This would be needed in my eventual app, so I was excited to learn about. Sadly, this is were the guide started to lose me. I found that it didn’t explain what the code it was adding meant, but I tried to copy it into {AIDE} just as it appeared in the guide. After I had copied it all in I was presented with 37 errors! Including some in the blocks of code that had worked just fine a moment ago. Suddenly it was telling me their should not be a ‘/’ in ‘string/hello’ but that would mean it would not pull the string up from the res folder. That’s not what I need. I re-read the guide, started over and tried again and again always to get hung up at that spot. My work day came to an end. Once home, I synced the broken app from my phone into my 10.1″ Acer iconia A500 and attached my keyboard. I pulled up the guide and started trying again. This time with more concentration and less distractions. Still no luck. I deleted the project and started again, hoping that I would some how avoid the issue this time. This time as I went I made other changes to test things out. I added to the main “Hello World!” string so that it displayed: “Hello World! Testing 1, 2, 3” and compiled and ran the app. It worked! That got me a bit excited. I had found out how to do something on my own. Encouraged by this small victory, I went back and added more onto the string. I added: “It worked! That means I can add this and it’ll appear in the app as well.” Compile, install, run. “Hello World! Testing 1, 2, 3. Wait a minute! Why didn’t it work? Went back and checked the code… maybe I didn’t save it before compiling. No, it’s there. Well this makes no sense. 
 
So here I am with 3 different beginner Java Programming issues. Who knew copying down code someone else wrote for people just getting started in programming could be so hard. Now this wannabe code monkey is left wondering if he really wants to be a code monkey or if he should just stick to simple repairs. It’s an interesting dilemma since he’s only coding for a side project and really doesn’t aspire to make any money off it. I don’t think we’ve seen the end of this wannabe’s journey into codeland.