HTML/CSS – Done

Not quite…

I’ve completed the preview HTML & CCS course on Code Academy and overall I’m very happy with what I’ve learnt.  Editing classes of code so they all have a standard style, manipulating the box model,  through to setting background images and inserting tables – this was a good course to pick up the basics of HTML/CSS.

The course is very user-friendly and much easier to pick up than the Ruby course.  If I’d had my time over I would have started with this before moving onto Ruby later, just to get a taste of programming first.  But in the end it’s all good.  It was a good confidence boost to fully understand everything I was doing and seeing the big impact some simple changes can make to the format of a webpage.  I still feel like I understood the majority of the Ruby course, but I would definitely need to keep referring back if I were to ever move onto a Ruby project.  But that’s exactly how it’s supposed to be given I’m a complete novice.  So I’m on the right track at least…

Lots of notation in HTML/CSS are pretty intuitive, e.g. font-size sets….the…font….size.

dafuq-girl

There are some trickier things to consider, like the sizing of boxes in the box model, and how sizing can be set with regards to pixels, ems, or by relative percentage.  I’ve almost resigned to not learning hex colours – how can you even interpret those codes?!!!

When moving through the course you start to think how you would start such a project from scratch, and it really drives home the importance of planning.  Sketching out how you want your website to look and interact – I can see this saving a lot of time in the long run.  Failing to prepare and all that jazz…

I’ve caught the bug now.  It’s daunting at the start when you see over half a dozen languages being streamed off when you google “What do you need to become a web developer” but in reality I think there’s a lot of cross-over and it’s more about syntax differences.  To me it looks like you want to learn to program in general terms, and then the individual languages are just tools to help you get to that end point (but i could be very wrong!).

So HTML was the content.  CSS is the style of the content.  But it’s all very static at the moment.  The natural transition leads me to JavaScript.  So starting tomorrow I’ll be cracking on with the preview JavaScript module to get a taste of the most used language on the web (or so YouTube keeps telling me!).

I’ve also signed up to General Academy’s Dash project.  It’s a free course and provides instruction on making 5 different projects:

  • Building a personal website
  • Build a responsive blog theme
  • Build a small business website
  • Build a CSS robot
  • Build a madlibs game

I think once I’ve gone through JavaScript then this project will help to cement the knowledge I’ve gained over the past couple of weeks.  I’m hoping the course will teach how it’s all done from scratch and guide me through the process without too much spoon-feeding.  Code Academy was great to give you snippets of info and helpe you though those tasks, but now I’d like to really improve my knowledge with less hand-holding.

come-at-me-bro

 

Advertisements

HTML (& soon CSS)

Today I started learning HTML & CSS through Code Academy’s preview course.

This is going well.  It’s starting off really basic which is great for me as I’m a complete beginner.  The basis of the language seems very intuitive and easy to pick up *happy face*

In the course I learnt about “boilerplate code”.  This is the basis of the HTML coding structure – the minimum requirements in setting up HTML code.  This consists of:

  • Declaring the code as html
  • Then actually putting a <html> in the code so that the interpreter knows html code is coming.  The first step isn’t enough!
  • Having a <head> section which doesn’t affect the body of the page that you see , however…
  • …it can have a <title> which is the title shown in the tab heading in the web page
  • <body> is then your actually text shown on page.

Afterwards I progressed onto basic setup of content using headers (<h1>), paragraphs, anchors and using self-closing image notation.

I’ve absolutely missed out with this.  As a teenager I knew a few people who could make websites and they were like wizards! The basics are basic, and if even knowing that I could have been a wizard (Harry).

I’ve only just started the section on CSS but it was so powerful to see how it completely changes the dynamics of a webpage.  I’m sure this is very mundane to other novices out there but the example provided in the course did shock me.  It shows the impact CSS has on HTML content.

mind-blown

Such an amateur….

Ruby on Rails

It’s been a tough week.  Work’s been manic and extra-curriculars over the week have  meant I’ve not been able to code as much as I’d have liked to.  However it’s always been in the back of my mind and with a few hours spare I was able to finish off the codeacademy.com Ruby on Rails course.

I’m glad I did it, and generally I understood most of the concepts that were going on.  After a few iterations I was happy generating controllers/models and could carry out some basic instructions.  However I found this quite difficult at times.  I’m taking solace in that a lot of others had similar issues to me and this was evident in the forums.  Often it was just a simple syntax error and I do feel that after some more practice of similar methods I’ll be far more comfortable and wouldn’t have the same issues.  But at times his wasn’t pretty (hence DeAndre face).

screen-shot-2017-02-12-at-21-22-38

We started off with the image above.  It helped me understand how a website renders information, with a user requesting information from a web page which gets passed to a controller, then that information is relayed back from the model to the controller which interacts with the view to render the information into human-readable format….I’ve probably completely butchered that explanation and I’m sure after gaining some experience in the future I’ll look back at this and cringe, but this is where I’m at!

I’m glad I did the Ruby course first as it helped with the iteration code that you’re required to do in the later modules.  Rails, to me, is a very good framework.  Generating controllers, installing bundles, everything gets saved for you in particular directories and it’s really easy to navigate around.  Once you’ve had a few goes at it then you know exactly where everything lives and it’s a really quick process to go through the necessary steps.  I’m just hoping more experience will make the whole process easier for me to go through.

Other than getting used to the Rails framework, one of the best bits of knowledge I gained from this was the belongs_to and has_many functions.  These are used to describe how entries in a database relate to each other, for instance:

  • A team has_many players; but
  • a player belongs_to only one team (ignoring internationals – stop being pedantic!)

eg

  • The Clippers has_many players
  • DeAndre Jordan belongs_to the Clippers
  • Chris Paul belongs_to the Clippers

It’s a really easy concept but it’s good for me to see how we tell a database about this relationship.

Anyway, that’s Code Academy’s Rails course done.  I’ll move onto HTML/CSS/Javascript soon. We touched on parts of this in Rails and I think it will just help me see how it all interacts.  Plus they’re supposed to be some of the easier languages to quickly pick up and are used in all webpages, so I’ll be going for that.  I also had a go at codeschool.com‘s Rails Zombie course.  I’ve only done the first part of this but this was very helpful.  The videos are clean and show you exactly what’s needed and why.  I liked this and will definitely look to Code School for other courses in the future. I think once I’m done with this course then it’s onto the front-end to see what that’s all about!

This week I’ve found myself youtubing random programming channels and reading a lot of articles through twitter.  However I feel like I’m falling into the trap of reading a lot of stuff without any direction on what I’m reading.  This doesn’t feel very productive to me and the lack of focus makes me feel like I’m in a dreamland.  I need to sort a curriculum out and stick to it, either picking a course and then only doing those lessons, or reading articles only about those topics.  I don’t know…I just feel I’m drowning in a sea of information without using the lifeboat at the minute.  Still, I’m sure I’ll get there!

 

Embarrassing Maths & Ruby update

Ok, I’m pretty embarrassed with this one.

Having a degree in Mathematics and working in a heavily mathematical field for the past decade I like to think I’m reasonably skilled will all things numbers/symbols.  But then I was stumped by this Codewars.com challenge:

screen-shot-2017-02-09-at-21-11-24

Baffled…I’m embarrassed to admit I had to google the mathematical answer *blushing emoji*

But once I got the formulae I was fine.  Did a nice bit of code and it was done in a line.  But still…

feels

Maybe it’s time to put away differential equations and linear regression and pick up a GCSE textbook.

Still, on the plus side, I’ve completed the codeacademy.com Ruby course!

The course finished using procs, blocks and lambdas which was interesting to learn however I feel that I won’t fully understand it all until I use them with regularity.  Also I learnt about modules and classes which was good to know how I should format my code.  I’ve decided to stick on the Ruby lines, following up with either the Ruby on Rails course on codeacademy.com or looking at another website for Ruby courses such as teamtreehouse.com or possibly freecodecamp.com.  I’ll also be ploughing into the Codewars.com katas to get my brain working and hopefully avoid some more moments of brain freeze.

Maybe they should rescind my degree…???

 

Refactoring

That’s what I learnt today! To a complete novice it sounds more daunting than it actually is and I’m guessing it’s something that happens a lot after the initial stages of writing code.

As the course tells me, refactoring is a way to improve the appearance and/or structure of our code without changing what it does.  To me, this is making it prettier, faster, easier to understand which I’m sure is what all good programmers strive for.

In our course this involved a few shortcuts:

  • Shortening an “if” statement to one line by replacing with
    action if boolean
  • Ternary operator – making a statement given a set of criteria is met (or not)
    e.g.:
    num1 = 1
    num2 = 2
    puts num1 < num2 ? “One is less than two!” :”One is not less than two.”
  • Changing if/elsif/else statements to case/when/then/else statements
    e.g.:
    case variable
    when value1 then …..
    when value2 then…..
    else …..
    end
  • Using conditional assignments (||=)
  • Defining methods – removes need for “return” and tidies up code – can be recalled on later in code
  • using .times  do function rather than for/loop method

This course instantly helped me on my codewars challenge – “Keep up the loop” –  printing out a message in case a variable n is below or higher than a set value.  Here I was able to use the ternary operator to write out a message depending on the value of n.  I mean…it took me a couple of goes!
1) I forgot my “?”
2) codewars doesn’t like “puts”

…but still I got there!

However my next code wars challenge was less of an accomplishment – reversing the word order of a string.  This introduced me to the .string.split.reverse.join(‘ ‘) function – never seen that before!

From my interpretation, the split function places each word in order in an array.  Then the .reverse function reverses this word order within the array, and then.join brings them back into a string.

This is going to be a long journey…

Next up – “Blocks, Procs & Lambdas”

Ruby Ruby Ruby Rubyyyyyy!!!!

(how many times has that line been used…)

The starting point of my coding journey starts at Ruby.

Why Ruby?  To be honest I don’t fully know!  I’ve read a ton of articles and watched a lot of YouTube videos on where to start and what to do.  Almost all of these pointed to the following process, not matter whether you’re going to focus on front-end or back-end:

  • HTML
  • CSS
  • Javascript
  • …then a language, such as Ruby….

(it took me some googling to realise what front/back-end development actually meant
*insert shamed emoji*)

When looking into job opportunities in the Tech industry I looked up a large firm in my local area who had a wide variety of job opportunities available.  One of which was for a Ruby on Rails developer.  And that’s how it started really.  But not knowing whether this is the right move for me and whether I’m good enough for a career in the programming industry I thought why not give Ruby on Rails a go on codeacademy.com.  This would show me the type of language used and give me a taste of what I needed to do to start learning.

Logging into CodeAcademy it suggested finishing the Ruby course first before moving onto Rails.  So rather than ignore an expert, I decided to take its advice!

I appreciate, however, that I’ve completely skipped the first three steps in the guide above.  And that’s on my mind.  But as I said, this was only a taster for starters.  In my mind, once I’ve completed the CodeAcademy Ruby course, it’s either onto Rails, or onto the HTML/CSS equivalents….and then back to Rails at a later date!

Right now I’m about 60% of the way through the CodeAcademy introductory course.  I’ve done some basic things with if/else statements, some work on hashes and arrays….and some other stuff (?!).

CodeAcademy is a great tool for me to start.  However I want to supplement this learning with some other exercises – cue codewars.com!

CodeWars is a great place for me to try some challenges myself.  It really makes me think about what I need to do and how to look at problem solving.  As noted, I’m an extreme novice, so any challenge at the moment is pretty hard!  But I’m enjoying it.

CodeWars pushed me into making this blog.  It started by having an issue calling values from a hash – which is fine, I’m gonna have issues.  So I tried, struggled, tried some more, struggled some more.  Once I got the answer from either googling it to death or then moving onto the best practice solutions I managed to see a really eloquent way of coding up the solution.  This was cool. I learnt something new.  I put it in my memory.  I moved on.

Another really similar question pops up a little while later, and blank – absolutely zero memory of how we solved the other problem.  This is my issue – I need to write things down to learn.  I think I’ve got it – I understand the answer…but recalling it at a later date – you’re gonna have a bad time.

youre-gonna-have-a-bad-time-south-park

So I made this blog.  When I come up against future codewars challenges, I’ll document them here.  The mere writing down solutions and how I got through them will aid in itself.  But then it also acts as a reference point for me to look up for the next challenge I come up against.  Hopefully enough of the same issues popping up with embed the answers in my long-term memory and I won’t need to keep referring back to these posts.  But until that day…

There’s so much I’m learning every day.  I have zero experience.  I have no idea what’s going on.  So anything I learn is new.  I’m going to need a resource like this to keep on top of what I’m learning.

So here goes.  I hope you find this journey interesting and if you’ve got any advice or comments along the way I’d love to hear them.

To the codemobile…