Tag Archives: Codecademy

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.

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.

Talk is cheap. Show me the code.

Although this week has been filled with a lot of hard work, I believe that, through the projects, I was able to learn a lot of valuable information. There is a saying that the only way to become a good programmer is a great amount of practice. Thus, I like the fact that this field of study does not demand too much theory, but it requires practice to consolidate acquired knowledge.

The main assignments for this week were Codecademy’s lessons and prototype homepage on GitHub (using Sublime Text). The first one allowed me to gain the basic understanding of the direction I should take my GitHub project. The second platform has taught me how to play with the code. The homepage project itself was interesting, but I felt a bit unsatisfied, because the weekly lessons did not teach me much about the visual side of an HTML document, i.e. the CSS. As I was able to learn, even experienced programmers do not have everything memorized, which is entirely not the point. The art of programming consists also of the ability to utilize research and search for knowledge on the web. Moreover, learning from one’s mistakes is the most effective way to gain knowledge. Thus, by seeing my work “change” on the Google Chrome browser, I was able to tell if there is something wrong in my code or if I need to make other corrections in order to improve readability.

To conclude, I feel like I made a lot of progress in my programming studies. However, I will be going back to some lessons on Codecademy or Khan Academy, so that I won’t lose the progress I’ve already made. I believe that learning everything at once is not a solution. There is also a need for systematic work on developing programming skills, not coding from project to project, once a month or several months.

Practice, practice, practice!

As I glanced at the syllabus for this week’s assignments, I could not help but my find myself stressing out about creating a prototype homepage. Might I add, this feeling lasted for majority of the week and resulting in me avoiding Web Development homework at all costs. On Sunday morning, I decided it was time to stop being dramatic and begin digging into Codecademy lessons: “A Closer Look At CSS,” “CSS Visual Rules,” and “CSS Setup and Selectors” before taking a stab at the prototype homepage. Procrastination at its finest? Yes, but I have quickly found that procrastination might not be suited for the newbies of the coding world.

In last week’s post, I compared coding to my experience of learning a new language. I remember it became apparent that I needed to practice Arabic each day to become more proficient at the language. I don’t believe that procrastination is suited for learning languages, and neither is it for learning code. For this upcoming week, I have made it a goal of mine to practice the class material each day of the week to feel more comfortable with the different languages and desktop apps like Sublime Text and GitHub. Once I reviewed Codecademy lessons from last week and completed the new lessons focused on CSS for this week, I felt more confident in testing out some of the tags for my homepage. Honestly, I have a hate/love relationship with CSS. I think it is incredible that I can style the HTML text, but naming some of the HTML text as a class or ID confuses me. I feel like I am having trouble deciphering whether sections of the HTML text should be a class or an ID. I’m hoping to ask many questions in tomorrow’s class about this!

Also, I must owe credit where credit is due and thanks to Susan I was finally able to set up my brand new laptop with Sublime Text and GitHub while understanding how the connection of these apps work. I am still a little confused about the full functions of GitHub even after this week’s readings, but I am excited to become more acquainted with it in the future.

Learning Modules on Codecademy

For this week’s module, I want to reflect in more detail about my experiences on Codecademy. Just to mention, even after the readings I still did not know what to anticipate for the actual activities and lessons.

First off, I liked the format and method that Codecademy used to teach HTML. I felt like the breakdown of lessons into different segments kept relevant and more advanced information lumped together, which made it feel more approachable and manageable. Also, viewing everything side by side in a single window was awesome! Seeing the detailed instructions that included pictures, the input area and the coded results all in one look made it easier to learn. I utilized the “Show Solution” option after two failed attempts and it corrected my mistake. This allowed me to go through the text and see the difference between what I had input and what was needed to follow the instructions. Information checking in the form of a quiz was beneficial to reinforce some of the new information I learned.

I had learned some HTML in elementary school when we made our own webpages through HTML, so a lot of the tags and attributes came back to me easily. However, I did have difficulty making the unordered lists and ordered lists appear with bullets or numbers. I will just have to keep working on it.

The Internet is like onions. Onions have layers.

Learning PHP felt a lot like JavaScript. At points, I got the two programming languages mixed up because of the use of the $ to define variables in PHP and its use in jQuery. I think I’m definitely getting a better feel for it because when I’d slip up on jQuery/JavaScript, I’d be stuck for hours. When I messed up on PHP, most times I knew exactly what I was looking for to fix my mistakes. It also helped that the PHP website tells you which line the error is on.

The PHP lesson also made me notice a concept that I had previously glazed over, thinking I understood. While we used jQuery primarily for interactive purposes and to give us actions with visible results for everything, the PHP lessons in the beginning primarily focused on using data and selecting things out of arrays. On this lesson, the author says we will focus on it as a programming language and not web development. Previously, I didn’t realize there was a difference. I recalled the Codecademy lesson on functions in JavaScript , in which we programmed these functions, but they did not visibly add anything to the structure of a website.

My initial thought after learning more about WordPress was that I need to take it off my resume. What I know about managing WordPress is comparable to taking a French class and trying to speak Haitian Creole. I knew WordPress as the site that hosted my e-portfolio, blogs I once had, and a niche site that I created about the Harlem Renaissance for a project once. I know how to upload content into WordPress using the themes and templates, but I didn’t know anything about hosting a website, which is what I thought (think?) journalists are referring to, after having countless lectures about creating our e-portfolios on WordPress because it’s the industry standard. Now, I know that there are even more levels.

One Cup of Java(Script), Please

This week was all about JavaScript, and no that isn’t a fancy latte you’ll be be able to find at your local Starbucks. Rather, JavaScript is  “is a scripting or programming language that allows you to implement complex things on web pages — every time a web page does more than just sit there and display static information for you to look at.” This looks like the unfollow/follow feature on Twitter, Google giving you search suggestions while you type, and yes, JavaScript is even responsible for those pop-up ads we adore.

JavaScript is the third layer of website, client-side programming. Combined with HTML & CSS, JavaScript makes webpages dynamic and more interactive. HTML, CSS, and JavaScript are all client-side programming because the language is interpreted by the client — which in most cases is our web browsers. Our web browsers read these languages and then present us with the finished product. The opposite of client-side programming languages are server-side programming languages. Server-side programming languages “deal with dynamic content. It runs on the server. Most web pages are not static since they deal with searching databases.” These programming languages structure web applications, query the database, and encode data into HTML. Examples of server-side programming languages are: PHP, C++, Python, and Java. Yep — sans “Script.”

Practicing JavaScript on Codecademy, I learned that they are three essential data types in this language: strings, numbers, and booleans. Strings are any grouping of words or numbers surrounded by single quotes. Numbers are well… numbers, but we don’t put these in quotes. Lastly, a boolean is either going to be the word true or the word false. These also don’t go in quotes. These are the building blocks of JavaScript, similar to nouns and verbs in our own language. To see what we’re trying to say in JavaScript, we simply use console.log and a pair of parentheses. JavaScript also has some pretty neat math functions. It can do the basics (multiple, divide, add, subtract) and it can even find a modulus. Now, what exactly does that mean? That’s a question better served for Google.

Final Reflection

As our time together comes to an end and I begin to reflect upon this semester, I must say that although this course has been difficult, I would highly recommend it to any fellow student.

This class is not easy. It takes up more time than any other course I have taken at Georgetown thus far. It is confusing, frustrating, overwhelming at times, and intense.

But, at the same time I will leave this class with more knowledge than any other course I have taken over the past year. The skills I have learned are practical, rare within my professional community, and set me apart as an asset to the team.

I think my personal struggle is that I look at things as a big picture – in my professional work, I can determine what small steps need to be taken to achieve a larger goal and that has served me very well thus far. With coding, however, I am so focused on the end result I struggle to understand the small pieces that add up to the larger project. I think this is partially due to the fact that I don’t fully understand the smaller steps – I don’t fully understand how a website or app works to a point where I can say “I want my final product to be X, and must do A, B, and C to achieve that.”

Although this course has not taught me how to learn X, A, B, and C (I think that will take years) it has helped me realize that I am too focused on the big picture and need to take more time learning the smaller steps.

Reviewing everyone’s final projects during class last week helped me see that there were lots of small, yet important steps that could be taken to improve our sites. When I took on my final project, I was so focused on the final “update” or “addition” that I did not even consider smaller changes, yet I think the people who took on smaller projects had the most impressive final products.

Overall I know this class was an invaluable addition to my coursework. I still have a lot to learn and plan to practice via Codecademy and other sites so I can better understand the baby steps that will one day lead to the overarching objectives I hope to achieve in both my personal and professional work.

WordPress, PHP, You Name It

Before starting to read the readings about WordPress, I was excited about the upcoming final assignment. I have some experience using WordPress in journalism classes at Wake Forest where I did my undergrad, but I haven’t used it to make something of personal significance. Moreover, it’s comforting to know that we’re not building everything from the ground up, but working off of templates that have been created. I think this will help with making the site more dynamic in nature and focusing on using code to customize the site to fit the subject matter. Not to mention, it takes some of the pressure off of having to think about both the big picture of a site and on a granular level with the functionality. WordPress will make it manageable to be able to do both.

Something that stuck out to me when completing the reading (that are now due the following week), that I think is important is: “Good themes improve engagement with your website’s content in addition to being beautiful.” At the end of the day, while we’re making this website for ourselves, we have to continuously keep the user in mind and ensure that they have a pleasant user experience. Otherwise, no one will want to visit our site. With that being said, in order to do this, I will have to work on both the front and backend of the site to be able to deliver a good site.

It was very helpful to go through each of the readings. It broke down, step by step, what we will have to do, including the taxonomy and naming of the folders. The guides, in particular the Child Themes guide, will be very helpful as we start creating our WordPress sites.

Other important information I noted:

  • WordPress debugging tool
  • Plugin: controls the behaviors of the feature
    • made up of PHP, CSS and JavaScript
    • builds additional functionality to what WordPress themes can already do
  • Theme: controls the presentation of the content
  • Development environment: develop the WordPress environment locally on your server (why we downloaded MAMP) and supplement this with a text editor like sublime or atom.

Surprisingly, I really enjoyed the PHP Codecademy lessons. It made sense. I didn’t feel as lost when I was writing out the code because I already understood variables, strings, functions, etc. I hope to be able to work more in PHP and continue developing those skills because it makes more sense.

Web Development Midterm – Coder Profile, Sarah Howe

For this assignment, I spoke with one of the lead web developers at the U.S. Chamber of Commerce (the Chamber), Sarah Howe. Sarah has a wealth of knowledge, not only as relates to web development, but also how the tech industry is growing, changing, and constantly redefining the skills necessary to be successful. Given that Sarah and I spoke for over an hour, I cannot fit the full extent of our conversation into 800 words, so I will discuss a few of the highlights.

First, I was intrigued to discover that Sarah fell into the web development world post-college and taught herself to code using Codecademy. In college, Sarah studied history with minors in art history, Asian studies, and classical studies. She then moved to D.C. to work as an event coordinator, first for the Korean Economic Institute, and then at the Chamber.

While working on events at the Chamber, Sarah had her first introduction to the coding world when she decided to create digital event pamphlets as opposed to print pamphlets to minimize paper waste. She quickly realized she enjoyed the work associated with digital tools – streamlining efforts, developing creative solutions, and covering diverse topic areas, to name a few. She realized that her future was not in events, and began to look for web production jobs within the Chamber.

A few months later, she switched teams and began working on content for Chamber websites, which continues to be her job today. Sarah oversees the web development team, making sure all of the “trains run on time” and working with other developers to create content for numerous branches within the Chamber.

I found Sarah’s career trajectory interesting given the complexities of web development. I thought a career in web development or coding would be similar to a career in finance as relates to the necessary training – if you do not major in the field in college and get a strong background, you’ll be too far behind once you graduate to break into the industry. I brought this up with Sarah and she explained that the difference with coding, as opposed to finance, is that the tech world is constantly changing, growing, and adapting in ways that make it both difficult to keep up with, but also easy to break into.

Sarah told me about an employee who was recently let go from the Chamber because his job became obsolete due to the changing tech environment. He had studied coding in college and worked as a server admin who hand-coded all of the Chamber websites (for reference, the Chamber has numerous incorporated affiliates, such as the Institute for Legal Reform and the Global Intellectual Property Center; each one of these organization has their own individual website. There are also branches within the Chamber, such as the Center for Education and Workforce or the Intellectual Property Center, which have pages on the larger Chamber site, so there are numerous complex sites to maintain). His job was to make sure all the sites were running efficiently by updating the cache, fixing minor bugs, etc. This work, according to Sarah, is now becoming unessential as websites are developing “smart code” that can handle this type of maintenance internally.

For example, in the past the individual who was laid off would set up rules for each page – for example updating the text on a page, telling the site to purge the cache as the old content is no longer up to date, and then telling the system to take a new snapshot of the page for the cache. Now, however, websites with “smart code” will automatically detect when the text on a page is updated and then execute step two and three automatically without needing an individual to update the code. Sarah pointed out that there is still obviously the ability for a person to code these rules by hand, or update the code if the site misses a step, but the technological improvements make a full time position unnecessary.

I asked Sarah what she thought this “smart code” meant for the future of coding, would it cut out jobs or create more? She felt that these improvements would cut out jobs for those who were unable to grow or adapt, but for those that were willing to continually learn and strengthen their skills, there would always be jobs available in the tech industry. She raised that the code is only as smart as the coder that created it and there would always be a need for coders to create the next level of “smart code.” I thought this was both a motivational insight, as well as a slightly daunting realization. To be an effective coder or web designer requires constant learning and change, as something that is cutting edge now will likely be obsolete in a few years.

I jokingly mentioned this to Sarah, and she agreed it can be daunting, but said that she thought taking our course, web development for media, is exactly the right first step to get into the coding world, as the basics won’t change. She analogized it to cooking – there are always going to be new ways to cook, and if you love cooking you enjoy learning new recipes, preparation tactics, etc. But minimally, even if you’re not a 5-star chef, you should have a basic understanding or the cooking process, the pieces that go into making a meal, and then, even if you don’t use all of your background knowledge, you have an understanding and appreciation for what went into the dish.

I really liked this analogy and I think it applies perfectly to what we have been doing in class. Although it has been a painful growing process, we have spent the past month trying to understand the intricate details involved in web development so we have a basic understanding of the process. Even if we are not going to use each minutiae coding detail in every website or blog we create, knowing the pieces that go into the larger system is important.