Learning JS Properly

I’m sure you have all come across the  blog JavaScript is Sexy, well the How to  Lean JavaScript Properly tutorial has been updated! 🙂 But , it seems I missed the boat on the study group! 🙁 They are already in week 5. Hopefully there is another  study group starting up on reddit or elsewhere, that I can join virtually. If anybody knows of one please let me know!!

Anyway, I figured I would continue on my own and document my progress here, while making study notes.

While covering Increment and Decrement Operators, in Chapter 2  of the book Beginning JavaScript (4th edition), I noticed  the way they covered this topic was rather unique. They stress that placement of your increment/decrement operators matters. I never gave it too much thought in the past, as I’ve pretty much only used basic pre and postincremnts/decrements in my for/while loops. But I’m now stopping to seriously think about the affect these operators will have on my future code.

Consider the following code for example:
someNumber = 25;
someVaraible = someNumber++ - 10

This code subtracts 10 from someNumber and then someNumber is increased by one. That’s easy the answer would be 16. No big deal right? But if you were to say have something a bit more involved like this:

someNumber= 4;
someVariable = SomeNumber++ * 2 + 1; //this equals 10
4 * 2 = 8 + 1 = 9 + 1 (the postincrement++) = 10. Here the number is increase AFTER the calculation.

or if you do
someNumber = 4;
someVariable = ++SomeNumber * 2 + 1; //this equals 11
4 + 1(the ++preincrement) = 5 * 2 = 10 + 1 = 11 Here the number is increased BEFORE the calculation begins.

As you can see the placement matters. It affects the entire computation of the code! Now, as someone who is has not wrote vast amounts of code it is very easy to make a mistake, which would cause errors in my code. So I’m glad I’m they pointed this out with example code. I recreated my own example here so that I can have a more solid understanding before moving on. Hopefully this helps you too!

Methods and Arrays in Java

Wow, I’m more than halfway through the semester. We just finished learning how to create methods in Java and now we are focusing on arrays. It amazes me how similar, yet different programming languages are. In Java arrays must be of the same data type where as in JavaScript arrays can be declared like almost any other variable and can contain an array of variable types. No pun intended ha!

Last week, we worked on a program that checks whether a number is palindrome. I used two methods in this program. This assignment  was actually pretty cool. It asks the  user to input a multi-digit number. If the number entered is less than 0 or  is less than 10, the program rejects that number, and asks the user to enter another number. I used a while loop for that! 🙂

When the user  finally enters a mufti-digit  number the number is then reversed with a reverse method.  Finally the ispalindrome method checks to see if the number reversed is equivalent to the  the number initially entered.

I would  share my code with you, but I’m sure that would be frowned upon by my school and my professor.  But I can at least talk about it, which is cool! 🙂

On a positive note I’m getting faster at creating my programs. It used to take me a few days to write a program, but now I can finish one in a few hours! You have no idea how confident and happy that makes me feel! I’m slowly but surely becoming a stronger programmer!!  🙂

Let’s Get Loopy!

My programming class (and my three other classes) have kept me quite busy. I’m  learning a lot, but I found, I’m learning a lot of things on my own. We’ve covered control flow statements (if, else if, else, and loops), casting, parsing strings, formatting, and a bunch of other things.  For the past two weeks our main focus has been on loops, well…at the very least out last few labs have been all loop related.  And I can definitely understand why we’re devoting more time to this. Loops can trip a lot of people up.

Since I’m mostly teaching myself, I’m always looking for additional resources online. Two weeks ago I  found a  great for loop tutorial through the York College of Pennsylvania. The CS 101 – Lecture 6: For Loops, loops recipes tutorial is written in C#, but it easily translates into Java. To be quite frank I didn’t even notice a difference. The syntax used was almost identical.

What really makes this tutorial special is how it breaks down the loops by type and suggests recipes for you to choose from (depending on what you are trying to accomplish). This loops tutorial also explains how to customize a loop, and  plan the iteration. It also provides a sample loop  for you to trace and it goes through each iteration of that loop. At the time, I was working on a lab that calculated pi with the Nilakantha series, so I found this tutorial particularly helpful.

Nilakantha  Series formula for pi:

π = 3 + 4/ (2*3*4) – 4/(4*5*6) + 4/(6*7*8)- 4(8*9*10) + 4/(10 * 11* 12) – 4(/12*13*14)…

I wanted to share this with you, because this tutorial is  pretty straight forward and perfect for anyone who wants to be able to have a better understanding of for loops or how to trace a loop, which I’m finding to be a very  necessary and useful skill to have.

Additionally, one of my classmates suggested the website Coding Bat which has coding exercises for both Java and Python.  Check it out, it’s totally awsomesauce!

That’s all for now. Have a beautiful weekend! 🙂

Week 6 -Intro to Java

I know it’s been a while, but things have been crazy. It has taken me a while to get used to my hectic schedule. I’m working and taking classes full-time. I wouldn’t recommend doing this, it’s highly stressful, but it’s worth it in the end. At least that’s what I keep reminding myself.

Anyway,  so far things have been going well in my Intro to Java class. I’ll admit there are still times when I work on a project that I  feel puzzled, but I’m feeling much more confident than before. And isn’t that what programming is really about? Problem solving? Additionally I’ve become better at nesting my if statements. I really used to struggle with that,  but now I’m A LOT better! It’s so true practice does make perfect.

I also went to the Women Who Code meetup for September , and discovered the highly addictive game 2048.  We were supposed to recreate it using Angular JavaScript, but we wasted way too much time playing and “setting up up”  our development area lol!  It was fun thought, I always meet new and interesting developers. Sometimes it’s good to just relax a bit and meet new people.

I’m looking forward to the meetup for later this month! 🙂

Intro to Programming

It’s know been a while since my last update, but I’ve been super busy with work, a small trip, and school. But, since I am taking a programming class, I will still be able to continue learning web development. 😉 There are only four girls, but that was to be expected. I know I belong in there, imposer syndrome  be damned! I am really in my element. I’m just glad that we are making our mark!

This week I was pleasantly surprised by how much I’ve learned, while teaching myself, attending meetups and workshops. We had our second class yesterday, we dove into the material. We covered strings, classes, concatenation and syntax. We also learned about common errors that occur and what they mean. Additionally, we spent a decent portion of the class learning about Base 10 (decimal), Base 2 (Bianary), and Base 16 (hexadecimal) and converting between the three. I found it a bit confusing at first, but found that using a chart made learning how to count and convert a lot easier to conceptualize.

I forgot to mention this class uses the Java programming language, which throws me off a bit. I’m used to more relaxed syntax, but I will adjust. I’m really excited about this semester and I can’t wait for my next class! 🙂

The Pomodoro Technique

There is a growing epidemic among us…the disease of procrastination.  We all do it, probably without even realizing it. For some it  has become almost second nature. I  have suffered from this malady on more than one occasion. Handling the tenancy to procrastinate can be quite the feat, but it does not have to be. Realizing why we procrastinate is the first step in treating this affliction.

The list of things we may procrastinate about is endless, but the reason is always the same: We don’t enjoy subjecting ourselves to things we consider unpleasant. The desire to procrastinate is a coping mechanism of our unconscious mind that prevents us from feeling pain. So when we don’t want to do something it’s because our brain associates that task with pain. That said, procrastinators  fall into five different categories:

The thrill-seeker  who wait to the last minute for the euphoric rush.

“…If you’re a thrill-seeker, then you procrastinate because you actually get a rush from completing things last minute. You feel that you thrive under pressure and you love the adrenaline you get from handing in work in the last possible minute. But are you accomplishing your full potential when you’re spending so little time on your projects?” Alina Vrabie, Sandglaz Blog (Follow her on Twitter)

The Avoider

“…Who may be avoiding fear of failure or even fear of success, but in either case are very concerned with what others think of them; they would rather have others think they lack effort than ability.” Alina Vrabie, Sandglaz Blog

The Indecisive Procrastinator

“…The Indecisive Procrastinator simply can’t make a decision. Usually, this is a result of the fear they will be blamed for a negative outcome. This type of procrastinator runs away from responsibility. After all, if they’re not making a decision, the result won’t be their fault.” Alina Vrabie, Sandglaz Blog

The Perfectionist

“…Perfectionists set such high standards for themselves that they become overwhelmed. This type of procrastinator might even get started on work, which the other kinds of procrastinators usually have a hard time doing, but they fail to finish when they can’t meet the unrealistic expectations they set for themselves. 

Because they can’t do something perfectly, then nothing gets done at all. Cue cycle of anxiety and shame.” Alina Vrabie, Sandglaz Blog

The busy Procratinator

“…Busy procrastinators are just too busy to actually get down to the bottom of their to-do list. Everything seems equally important and they can’t decide what to do first. Choosing only one task would mean that the others won’t get done. Just like in the case of the Perfectionist, the Busy Procrastinator might actually start some of her work, but will fail to finish it. What this type of procrastinator needs is a big dose of prioritizing.” Alina Vrabie, Sandglaz Blog

Which one are you? Perhaps a combination of all five? The most common type of procrastinator  is the avoider. This little bugger is the voice inside your head with seductive distractions that steer you away from the task at hand. These distractions pulls us into what we call the “comfort zone.” The comfort zone is safe haven away, or retreat, from all unpleasant tasks.

How do we get back in control of ourselves and our time? In comes the Pomodoro Technique, a  time management method developed by Francesco Cirillo (he named his technique after a tomato shaped kitchen timer). The Pomodoro Technique breaks down work into 25 minute intervals with a 5 minute reward period. These breaks are known as “pomodori”,  the plural of the Italian word pomodoro for “tomato”.  This method is great if you are a obsessively-compulsive-perfectionist- procrastinator like me. This method works wonders for your productivity!

Sounds pretty rad right? But how do we implement it? Well ladies and gents I present to you the Pomodoro Technique :

 

  1. Identify a task to be accomplished.
  2. Set  your Pomodoro timer to 25 minutes
  3. Work on the task until the Pomodoro rings
  4. Take a 5 minute break
  5. Every 4 Pomodoros take a longer break (10-15 minutes)

How to get started with the Pomodoro Technique:

All you really need is a timer. Any timer will do, a phone, or web app will suffice. I found a neat timer called Tomato Timer. It’s pretty simple and offers desktop notifications (in Chrome only), which is handy little tool for us developers! *Does a happy dance off in the distance*  

 

Distractions

I’ve been very distracted the past two weeks by friends, family and a hiking mishap (I sprained my ankle 🙁 ). But no excuses! I will do better this week. I did however manage to haul my butt to my Women Who Code meetup, despite  having a maimed foot. Do I get points for effort?! 😛

At the Women Who Code meetup, we continued our Angular Phonecat tutorial. Unfortunately, we didn’t finish, so we will continue the tutorial on our own.  And next month, we will be building our own Angular web app! Yikes! I’m excited but I’m also a bit  nervous. My focus for the next few weeks will be solidifying my JavaScript skills using Treehouse and the book JavaScript the Definitive Guide.

Since I already have taken a workshop on Javascript, and know the basics, I will be focusing more on object oriented programming , including encapsulation and inheritance, object creation, and prototypes.

When I have a firm grasp on that I will also be going over CodeSchool for their free Angular tutorial.  Wish me luck!

Responsive Web Design & Study Hours

Last week I finished the Responsive Web Design course on Treehouse. Additionally, I’ve been reading Responsive Web Design with HTML5 and CSS3 by Ben Frain. So far I’ve learned quite a bit. The Treehouse  courses is a great introduction to Responsive Web Design while Frain’s book gives a deeper explanation and provides many useful tips.  I’ll post a book review when I finish reading.

In other news, yesterday I registered for a programming class, at my college.  I’m super pumped! I’m not sure what languages we’ll be learning, but I’ll find out soon enough.  It’s my first online course for a grade. Yikes! I’m not too nervous though, I’ve been teaching myself programming for a while now, this should not be too different.

As promised I’ve listed my study hours (sorry for being such a slacker, I’ll be better next time!)

Sunday: 0 hours
Monday: 3 hours
Tuesday: 2 hours
Wednesday: 3 hours
Thursday: 1 hours
Friday: 0 hours
Saturday: 3 hours

 


Learning the Front End

Recently I’ve completed quite a few courses on Codecadamy, Treehouse, and Code School. I’ve achieved many points and badges, but it will take more than watching a few videos and gaining achievements to become a developer. Old bad habit die slowly…I guess.

When I started this blog I was focused on learning Ruby until I was given some really good advice from a developer I met at  Women Who Code. She told me it was a better idea for me to get a good foundation and grasp of the front end before learning the back-end. I still really want to learn ruby, but I also value her advice and respect her opinion. She has amazing experience.

Today, I was reading a blog post by Matt Steele and he reinforced things I’ve heard before.  He said,

“You must build every day. This is a must. You’ll never make it unless you have a few sites under your belt and can prove that you know what you’re doing…”

I don’t know why I haven’t put more effort into building things. I have given myself tons of excuses like I don’t have enough time, my computer sucks, I’m waiting to purchase a Macbook Pro, etc.  Excuses don’t produce results. What am I waiting for? I guess I’m afraid all my projects are going to suck. There it is again…good ole Imposer Syndrome (never quite goes away).

I have put in a lot of effort and it will all go to waste unless I utilize the tools and skills I’m learning.  So I’ve decided to refocus. I’ve created a  few lists to figure out where I’m at.

 

Skills I’ve attained:

  • I am able to write valid HTML5 and CSS3
  • I have knowledge of the command line
  • I can wireframe a website
  • I am able to deploy a website to a web host
  • I can manage a domains DNS settings
  • I’ve learned how to use a content management system (Hello WordPress!)

 

Where I  still need  improvement:

  • Using JavaScript and JQuery
  •  Bootstrap/Foundations
  •  Responsive Web Design

 

What I still need to learn:

(This is a never-ending list really but I’ve narrowed it down considerably)

  • SASS/COMPASS
  • Git/Version Control
  • Photoshop
  • Illustrator

 

Building things will help me solidify my skills and better define my strengths and weaknesses. Additionally, focusing on being more pragmatic and getting out of the habit of haphazardly learning will be most beneficial (this is actually quite difficult).

On a positive note, I am on the right track. I’ve been going to Meetups, learning  through websites, connecting  with developers on twitter (looking at you CodeNewbies! 😉 ). If I incorporate the use of a timer and teaching others (with a few websites out there) I’ll master the front end in no time. So I will start logging my coding hours every Saturday night/Sunday morning.   When I finally get a Macbook Pro I will consider starting a video series too!

Wow…that was a long post. That’s all folks!

Computer Science Degree vs Programing Bootcamps

It is still to be determined which is the better option. I can not decide anymore, because I see the pros and cons of each. What I can say is that a computer science degree paired with a programming boot-camp would make anyone’s resume golden. I bring this  up because I find myself in this dilemma.  I’ve been working full-time and attending college part-time for the past few years working on my bachelors degree. When I began school again I was still uncertain of what I wanted to do, so I chose business. Ironically enough taking business classes has led me toward a major in Computer Science.

I have given a lot thought about the type of work I’d enjoy and the culture/environment I want to work in. I love reading and teaching myself new things everyday. I enjoy blogging, technology, creating things, and challenging myself (while moving past frustration).  I’ve thought about continuing on with a bachelors in business and attending a programming boot-camp later on, but I’m not sure how practical that will be in a few years. Additionally regardless of  how popular boot-camps are the price tag almost makes many of  them inaccessible.  

I still have  a slight case of Imposter Syndrome, and feelings of uncertainty. Sometimes I question if the top boot-camps really would admit a business major. But I would like to work in the tech industry and a bachelors in Computer Science seems like the ideal way in for me. Math is definitely not my favorite subject, and half of computer science is basically a math degree. But  I was given some valuable advice from a lovely young woman I work with,” you may not love a particular subject, but if it helps bring you closer to what you want to do learn to like it.”

It’s always good hearing other people’s stories and experiences because it helps put things into perspective. I know that by switching majors it will probably take me another year to finish my degree, but I believe that having a computer science degree will be and advantage in the future.  I know that  as an applicant without one I might be a harder sell to potential employers. So, I can’t say I’m fully on-board the boot-camp bandwagon, but I do believe in the material that is taught, and the skills that are attained. And I think they are a great supplement to a computer science education.