$(“#iFeelBetter”).kindOf();

This week’s jQuery lessons came as a relief following last week’s focus on JavaScript. jQuery solves a problem that I’m glad to learn was more universal than just my own shortcomings: the JavaScript language is bulky, the syntax is confusing, and small mistakes are easy to make.

Unfortunately, using the jQuery library doesn’t eliminate the possibility for error, but it does render errors much easier to locate and address. Hooray for jQuery!

The biggest challenge

The exercise I found most challenging had to do with the DOM. I wasn’t expecting to have such trouble with it—I understood the basics of parent-child and sibling relationships within the context of HTML—but I found that using the DOM jQuery methods to reference various elements abstracted the code to the point where I had trouble remembering what I was supposed to be doing in the first place.

I can understand how jQuery selectors are useful for referencing specific areas of code, and how jQuery actions simplify the code that would be necessary to make things perform the desired behaviors. I also understand that utilizing the parent-child HTML structure by referencing it in the JavaScript makes the code more dynamic—that is, as things within the code change, the JavaScript functions will still apply.

Yet for some reason, using the .next(), .children(), etc. methods just felt like a big riddle. Onwards to more practice, I suppose!

Fun facts

This is just nerdy, but I was really interested to learn that the common case used in JavaScript is called “camelCase.” I had noticed its structure in earlier lessons, but didn’t know anything about it. Apparently, it’s named for the shape of a camel’s humps—with each hump representing a new capital. Of course, we’ve all seen it used in cases like “iPhone and eBay.”

A side note along this nerdy grammar thread: Is anyone else frustrated with Codecademy’s consistent misuse of “it’s” when they mean “its”?

What’s next?

In addition to putting out feelers for our midterm web developer profiles, I’ve been giving some thought to what shape I want my final project to take. At Georgetown SCS, we have a number of WordPress microsites that serve specific populations. The Hoya Professional 30 and the SCS Commencement site are two examples of projects I’ve launched. There is a nascent desire among the administration to launch a student life website dedicated to events, social resources, and student groups here at SCS. I think this is a project I’d like to take on in order to test the new development skills I’ve learned. The major hurdle I’ll need to figure out is the hosting (the other microsites are hosted through Georgetown Domains, which limits the themes and add-ons you can use).

More to come!

Logic, JavaScript and some questions

JavaScript proved to be simultaneously the most interesting and most challenging language yet for me. The Codecademy lessons were as good as they could be, but I certainly will need to review this language the most.  

Having struggled through logic in college, I was familiar with some of the key terminology and the concepts behind it — boolean connectors, statements, arguments, inferences and implications. I never had an opportunity to really apply those concepts except within equations. I now wonder if we should have been taught JavaScript alongside logic.

Learning how to write pseudo-code was a key takeaway for me. I know that writing pseudo-code will be immensely important not just for my own understanding but also to make sure the code is organized. For me, it’s always more important to understand the why rather than the how — I find that especially important here. I’m confident that the goal can be reached when I understand the concepts. The how will come.

There were some requirements that I found unnecessary in JavaScript that I feel I need more clarification on. Why is it that, when interpolating, you need to use the + sign? Why aren’t there more standardized ways to access your JavaScript in the HTML?

Java-what?

We had the chance to get exposed to a lot of information learning JavaScript this week. For the future, I want to start the assignments for the week much earlier so I allow myself to digest the information at a slower pace instead of cramming them in three days. I felt like if I had taken my time with it, maybe left it for a bit and came back to it, I would have been able to understand the concepts more easily. 

Apart from doing the Codecademy lessons, I spent some time learning about JavaScript, the history, and the benefits of learning it. JavaScript is great because it is extremely useful and works on various platforms.  It is easy to learn and can be found everywhere. 

I liked how Codecademy walked us through the logic behind all the shortcuts they have. For example, they do a lesson on if/else and show us how it can get complicated when dealing with more code and when more items are included. Then in the lesson after, they teach us how to use functions to make the code simpler. It can be a little frustrating to learn something and practice it, then to realize it is useless because there is an easier shortcut. However, I think it is important to understand the logic behind all the shortcuts.

I definitely need to do more exercises to become more comfortable with JavaScript. I am going to make a list of the basic codes and try to memorize them. This might be handy when we build on the rest of the codes. I will be using Khan Academy to learn more about how HTML, JavaScript, and CSS can be utilized to work together and create a final product. Also as we get into jQuery, it will help us simplify HTML, CSS, etc. This will allow us to see the bigger picture among all these languages that we learned so far. 

JavaScript is like muscles of the body

Is it normal to be more frustrated with JavaScript than HTML and CSS? In last week’s post, I wrote about how it is not a good idea to cram Codecademy lessons into one day; so for this week, I made it a mission to split up the lessons into multiple days. By doing this, I was able to go through each JavaScript lesson slowly and figure out the topics within JavaScript that I need to review again.

At first I thought HTML and CSS were overwhelming, but JavaScript completely blows both of these languages out of the water. This past weekend, I was at an event where I somehow ended up talking about web development with a girl that chose this field as a career. The first question I could not help, but asking her was, “Is it normal to be extremely frustrated with JavaScript?” She reassured me that everything would be okay and that eventually I will gain a full understanding of this language with more practice. I remember that in one of our past classes Greg explained HTML as the structure, CSS for styling this structure, and JavaScript as the behind the scenes actions. The girl I vented about my JavaScript confusions described HTML as the skeleton, CSS as the skin, and JavaScript as the muscles.

The way I like to think about it is JavaScript is the muscles and it communicates with the body in complexing ways. I think I got scared about JavaScript when the ‘Introduction to JavaScript’ Codecademy lessons began talking about math operators. I know that the lesson claims that math does not need to be a strong-suit to learn this language, but I think I’m still confused about the connection between math operators and the affect it has on a web page. Stay tuned for a question asked about this in class!

In addition, I really enjoyed the if/then statements of JavaScript. Although I wasn’t able to write them fluently, I can at least say that I was able to understand the syntax errors I was making in the exercises. I thought it was cool to see the if/then statements make cool additions to a web page that are “behind-the-scenes.” I am hoping to eventually become stronger in this language and I’m sure it will happen over time.

JavaScript

This week was quite interesting. For starters, the only thing I understood about JavaScript coming into this course was that it was difficult to understand (compared to HTML/CSS). But I didn’t exactly know what I didn’t know.

This week’s lessons were useful for showing us what JavaScript is used for, from adding and subtracting to serving as a foundational tool for bigger-picture project display. I’m definitely going to have to go through the lessons again (and again) to remember how the consoles work with each other (and sometimes exist inside each other, which was confusing at first). But overall, it was pretty clear.

Seeing how if/then questions are answered through programming was also interesting. I always knew that behind responsive design, some programming logic has to be in place for the page’s display to adjust to whatever the user is doing. Starting from smaller if/then statements and then building and adding conditions for more complicated, data-laden graphics is neat, and it gives me a whole new appreciation for the work my office’s developers do on a daily basis.

One question I have, though, is about the commenting language within the script. Since it’s expected for us to link HTML/CSS/JavaScript pages together, why are smaller functions (such as the invisible commenting function) not consistent across the board? Wouldn’t it be reasonable for some of the rudimentary labeling factors to be consistent?

Other than that, I am appreciative of the in-depth comments on my previous assignment. Things are looking much clearer now with regards to page organization. In fact, I was originally not as concerned about having clean (perfectly and consistently indented) text on my code page as long as it works. Now, I see that unorganized work (even if it displays exactly what you’re looking for on the front end) is a bad habit that will result in unnecessary frustration as the page gets more and more jumbled.

Achilles’ heel

With today’s sun warming our bodies and souls, it is easy to forget how dreadful the past week has been. With the weather that caused our in-person class to be cancelled, we had to settle for a Zoom meeting. What’s unfortunate is that we missed one of the most important classes (at least for me) and had to learn JavaScript by ourselves.

But before I jump into the “journal” part of my post, let me give you some context. JavaScript is a dynamically typed language. It is frequently used in creating websites, as it, for example, provides interactivity of pages, validating forms or building navigation elements. This use of JavaScript makes it easier to use a library such as jQuery. However, JavaScript does not create standalone apps. In the most common case, JavaScript code is located in HTML documents and allows us to enrich websites with interactive elements that would be impossible to obtain using plain HTML code. Even though it may seem that learning JavaScript is quite easy, mastering this language is quite demanding and time consuming.

I believe that online learning is great in a way that students can take a course or participate in a class from the comfort of their home. Online classes often offer alternatives to live meetings like forums, emails, and chatrooms. I am taking an online course right now, PR Writing. Thus, with some experience in writing press releases, op-eds and so on, it is easy for me to catch up with any additional readings or assignments. However, with more engaging and complex classes, allocating additional time for more practical exercises is something that I believe would be beneficial to some students. Unfortunately for me, this week has been very confusing and even though I was able to complete the online course on Codecademy, my knowledge of JavaScript leaves much to be desired.

Similar but different!

This week’s introduction to JavaScript lessons highlighted basic concepts on variables, data types in JavaScript (strings, boolean, numbers, null, undefined, symbols, and objects.). How to create a variable and functions, also the ES6 upgrade to the “let and const” to  fix the global scope flaws in the variables, arithmetic operations (+ ,- ,* ,%, / , ++ ,–) and how they can be used in JavaScript. I did learn a new word “concatenation” that uses the + operator to join two or more strings together. The quotations and spaces were a little tricky at first, but then they introduced  (“), which I personally prefer because it makes the codes simpler.

The biggest challenge was remembering when to punctuate codes. Also, the “if, if else, and the else” conditions were a bit confusing at first. As a whole I think  learning programming can be likened to learning a new language. The more you speak the better you become and the reverse is also true.

I am looking forward to learn and explore more of JavaScript.

Dear Duolingo: Consider adding JavaScript

This week I realized that I have begun learning a new language. Reflecting on my past language-learning experiences, as well as my former brushes with code and query languages, will help me set realistic goals and expectations for this new challenge.

One thing stands out to me as being immediately familiar to my past experiences: I know what the code supposed to look like, but I still have trouble constructing the right syntax on my own. The end-of-unit quizzes highlighted this tendency. I usually got the syntax questions right on the first try (just because they looked right), but I struggled with the questions designed to explain why something is done. That is to say, I’m better at reading the code than I am at writing it.

This week’s lesson with the JavaScript console also reminded me of Data Reporting, where we learned the basics of MySQL query language. I remember when I started learning about MySQL that the process of writing pseudo code was critical in the writing/development of more complex queries. It’s also a great mental/emotional strategy when you get frustrated with writing code, because it’s pretty hard to get it wrong, and it helps you organize your thoughts. I’ll definitely be taking the extra time to write pseudo code and add comments to my code as it grows, just to save myself some aggravation.

Goals for the Future

If “getting better at JavaScript” is too broad a goal, I’d like to prioritize getting better at reading the error messages. When I was learning how to use MySQL, the error messages were immensely helpful at identifying syntax and other input issues. In the Java console, however, I’m still at a loss. Luckily, I’ll have plenty of opportunities to practice reading the error messages, because I anticipate I’ll be generating a lot of them in the weeks ahead.

Is there a Duolingo option for JavaScript?

A Question I’m Afraid to Ask…

It’s clear that so far we’ve been creating variables and functions, and then defining them within the code (i.e. the user’s name is “Cole” so let userName = ‘Cole’. But when we interact with web pages in the wild, that name field picks up data from our user profile. What does the code look like that pulls data from another source and into the field we’re using?

Week 3 with JavaScript

When dealing with the JavaScript lessons this week in Codecademy, I found it to be easier than last week’s lessons dealing with CSS. The items that I thought were easiest to grasp were adding comments – which isn’t surprising since it’s literally the addition of nothing into the code, or no commands at least. I thought that initially, the random number command in JavaScript was the coolest since it literally generated a random number each time you chose to “run” the code. It kind of changed my mindset with HTML, JavaScript and such. With how we were learning HTML and CSS, it presented itself to me as definitive, rigid commands that were consistent. To be honest, that lack of fluidity is something that I am not particularly used to, so it struck me as too calculated and formulated. However, the random number command via JavaScript was interestingly cool! So, I am excited to see more code that is dynamic.

While learning about the addition of variables in JavaScript, the instructions to the commands seemed very easy, however I kept finding myself forgetting to add another line including the console.log text; I didn’t realize that I had to add semicolons after each line as well since we didn’t have to do that in HTML. When we came to the portion about learning of interpolation, I followed the lesson along with relative ease, but I still don’t really understand the need for interpolation with the ‘+’ sign when you could just use another line of code. Once again, I really liked in Codecademy how they implement the lessons you just learned. It further helps me understand the material and gives me another opportunity to take a second or third look at the sections and items that were not necessarily clear when I first encountered them.

Attempting CSS

For this week’s lessons on Codecademy, I felt more lost and behind than the previous week. It was definitely noticeable the difference in pace, since the lesson had just picked up from where it had left off the week prior. Particularly, I was having issues with CSS, I think primarily because that concept of language is literally something I have never seen before. I know I will have to backtrack and redo the lessons in order to understand how to execute it. Additionally, when I was on GitHub, I felt like I was back in time trying to customize my MySpace account, which was nostalgically hilarious since my HTML skills have only gotten worse since then. I was using GitHub the website version, and the main issue I had was to figure out how to implement CSS on my repository. To be honest, I did not figure it out and looking back my only guess would be that this is something I need to do on the GitHub desktop version.

For the reading, the Inspect and Edit Styles article started off with a screenshot of an inspected element. Even after reading the article from top to bottom twice, I am still slightly confused with elements it discussed, such as examine and edit box model parameters. Personally, all this type of information and learning is completely different than I am used to. I was hoping to challenge myself by taking this class and I think that already by the second week I can feel it. The verbiage that discusses HTML and CSS is very particular and is throwing me off more than anything. I just think that it is dense, and have to constantly look up words and their reference on Google is slowing me down more than I originally anticipated.