Author Archives: Jaclyn Glover

Midterm Reflection: Startup Culture, App Development, and AngularJS

I enjoyed working on the midterm assignment and learning from an experienced web developer. This assignment forced me to go outside of my comfort zone and interview someone I’d never before met or interacted with. As a relatively shy person, this was difficult for me, but the developer I interviewed, Dave, could not have been nicer and more approachable.

I connected with Dave through one of my colleagues in the Office of Advancement at Georgetown. My colleague’s boyfriend owns a software and app startup, and my colleague mentioned that her boyfriend would definitely know a web developer that I could interview for this assignment. Several days later, my colleague connected me with Dave via email, and he very quickly answered my lengthy list of questions. This past week, I spent some time following up on a few questions with him because I was interested in learning more about his perspective on those topics (particularly, why Stack Overflow is so great).

One of the most interesting things that I took away from my conversation with Dave was his warning about the culture of overwork that often exists in startups and tech companies. He made an important point that a company might offer you three free meals a day, a place to nap, and a gym, but that is likely because they expect you to spend most of your life there. Tech giants like Google and Apple boast about the amenities available to employees on their campuses, but does this come at the expense of having a life outside of work? Even if I don’t continue with web development any further after completing this class, Dave’s advice to be wary of this type of work culture and environment will remain in the back of my mind no matter what field I pursue a career in.

Dave’s mention of the AngularJS framework also piqued my interest. I had not heard of AngularJS prior to conducting this interview, and I spent some time afterwards researching the framework and what it does. From what I am able to comprehend, AngularJS can be used in app development to make an app more readable, interactive, and dynamic. The AngularJS site sums up the framework as “HTML enhanced for web apps,” but I know there is much more to it than that. Although we won’t really touch on app development in class this semester, I’m interested in digging more into this topic and seeing how app development overlaps with more “traditional” web development. As the usage of web and mobile apps only continues to increase, I’m sure frameworks like AngularJS will become even more important.

Overall, speaking with Dave was an enlightening experience. It was reassuring to learn that, even as a seasoned web and app developer, he relies on Stack Overflow when he has questions or is unable to figure something out. I’m glad that I created an account on the site when I was struggling with last week’s jQuery slideshow assignment—I’m sure I will be consulting it frequently throughout the rest of the summer. Speaking of the jQuery slideshow, I was finally able to get mine to work!

jQuery: A Lesson in Persistence

As I was working through this week’s Codecademy lessons on jQuery, I felt a minor sense of relief because I seemed to be understanding the concepts more easily, especially when compared to last week’s JavaScript disaster. Applying the jQuery concepts, however, has been a different story.

After completing the Codecademy jQuery exercises and working on some further tweaking of my existing homepage HTML and CSS code on Friday evening, I decided to get away from my apartment and head to Georgetown’s main campus on Saturday afternoon, hoping that the jQuery gods would help me complete the slideshow assignment. Five hours later, I felt like I had little to show for my efforts. Numerous Google searches and perusing the pages of more than 10 different sites only left me even more confused. I reached out to Greg for assistance. His response to write out the required steps in the slideshow using code comments was helpful, but I guess I’m just unsure of where to go from here. I found what I thought was a useful source for building a jQuery slideshow, but even modeling my code after this example has not worked. I then proceeded to create an account on Stack Overflow and asked the same question there–how do I get started on creating a jQuery slideshow with captions that show/hide? I received a detailed response, and tried altering my code, but it still did not work. My GitHub repo for this assignment is here. If anyone has figured out the jQuery code, I’d love to chat!

I’m not one to give up on an assignment. It’s currently after 9:00 on Sunday evening, and with a full-time 8-5 job and then a 6-9:35 pm class to attend on Monday, I’m unable to dedicate any additional time to this before the 10:00 deadline on Monday night. You win [for now], jQuery. I will try to work on the slideshow again on Tuesday evening to get it working before Wednesday’s class. I’m hoping this week’s class will shed some light on the steps we should follow to make a slideshow. I think what would be most helpful for me would be to see a template of sorts that shows the correct code to use in order to get all images (except for the current one) to hide, to click through to the next image using a button, and to add the caption text that also shows and hides.

I’m excited to work on the developer profile midterm assignment. After working so hard to figure out the jQuery assignment and still reaching a dead end, I’m grateful for the opportunity to work on a written piece that is more straightforward. The developer I’m profiling is named Dave. He’s asked me to withhold his last name for privacy reasons due to the work he does as a government contractor. Dave is a developer and programmer who does front-end design for applications that provide analytics as well as freelance marketing and landing page-type work. I got in touch with Dave through my colleague who works on social media and analytics for my department at Georgetown. As I was discussing this assignment with her, she offered to put me in touch with Dave, who is a friend of her tech app startup-owner boyfriend. I’ve already spoken with Dave and have received answers to the questions I posed, so I’m looking forward to working his answers into the midterm assignment. I reviewed the developer profile examples from the 2013 class, and am wondering what exactly is expected for this assignment. Some people provided a brief overview of the person they profiled, and then simply listed out the questions and answers. A few others worked the questions and answers into an actual story (I’m assuming these were the journalism students). Do you have a preference, Greg, for how we approach this assignment?

Logic, or JavaScript?

I struggled mightily with this week’s Codecademy lessons. I knew that JavaScript relied heavy on logical values and statements to perform its functions, but I did not anticipate just how difficult these things would be to comprehend.

I worked on lessons one, two, and three prior to the June 7 class so that I could at least have a basic understanding of what our lecture that night was going to cover. I was able to make it through lessons one and two fairly easily and with few issues. Lesson three, however, proved to be a different beast. No matter how many times I re-read the descriptions and instructions, there were certain steps that I was unable to perform correctly and move past. For the first time this semester, I was forced to use the “get a hint” and “get the code” tools during this lesson module. I’m not happy about having to do that, to say the least, but it was a necessary step in order for me to proceed through the exercises. I went back through each lesson and looked at the correct code, which helped me to see where I went wrong when trying to complete the exercises.

Completing the first few lessons prior to class enabled me to follow Greg’s lecture more easily. As we looked at the JavaScript code of the slideshow sample, I was left wondering where exactly the console.log property comes into play. This is something that figured heavily into the Codecademy exercises, but I don’t recall seeing it come up during our in-class analysis of the example of JavaScript code. Is the console.log something that is specific only to Codecademy when printing the output to the screen, or does it have real-world applications?

I thought the lessons on JQuery were interesting, and I appreciate that there is an easier way to interact with elements in the DOM that does not require us to write such lengthy JavaScript code. I am dreading having to memorize the JQuery commands, as they are difficult to understand (I needed more hints during this lesson, too). I find it difficult to memorize and truly learn the concepts as I work through them on Codecademy, because referring back to an earlier concept requires hitting the back button and navigating away from your current page. I’ve started copying and pasting the entire lesson into a Google document so that I can refer to earlier parts of the lesson while working on the current module. My Google doc for the JavaScript and JQuery lessons 1-5 is 41 pages long.

I’m hoping that our June 14 class lecture will help me make more sense of the concepts I encountered in the Codecademy lessons. I look forward to applying these concepts through the slideshow exercise in the coming week.

Google is a Girl’s Best Friend: My First Attempt at Coding

This week’s prototype homepage assignment was my first attempt at creating a webpage using HTML and CSS. It would be a huge understatement if I said that I struggled with this assignment. I decided to create a prototype homepage for a personal portfolio site/blog, and creating just a single page with HTML and CSS took a great deal longer than I had anticipated it would. I was grateful that I had completed the Codecademy lessons 3-8 earlier in the week, as it gave me more time to work on creating the homepage over the weekend.

I encountered a number of issues when coding the HTML and CSS for my homepage, the first being perhaps the most simple element of all—linking my CSS stylesheet to my HTML code. I’m going to be honest and say that it took me more than an hour-and-a-half of troubleshooting to resolve the issue and to correctly link my style sheet. This brings me to the title of this blog post—Google really is a girl’s best friend when attempting to code. I cannot begin to explain how many times I Googled various aspects of HTML coding and CSS styling while working on this assignment. I found that referring back to the Codecademy lessons was often not enough, and that I needed additional assistance from the w3schools site and other sources to correct my code. Some of the issues I struggled with included figuring out how to add margins around the text and image on my homepage; applying the classes, IDs, and div concepts to my HTML; and creating and styling a navigation bar. The latter concept was referred to during the Codecademy exercises, but I had to enlist the help of Google, a w3schools tutorial on navigation bars, and a classmate (thank you, Amalia!) to fully comprehend how to create a navigation bar at the top of my site. I’m still not entirely pleased with the formatting of my navigation bar, as I wasn’t able to figure out how to increase the space between the various links/tabs. I hope to resolve this issue in the coming weeks. I also want to figure out how to get my h1 headline and navigation bar to appear on the same line, rather than stacked as they currently appear on my homepage. Does anyone know how to do this?

I read the articles on responsive web design after I had begun working on my homepage. These articles reiterated the “mobile first” mentality that seems to be pervasive among programmers and developers. With the majority of sites being accessed on mobile devices such as phones and tablets, it is important that a site’s design accounts for the different screen sizes that viewers are using to access the information. This “mobile first” mentality is also something that public relations and marketing practitioners consider when creating content for their target audiences. Making your client’s or brand’s content easy to access from a variety of devices ensures that your audience will be able to access the content using the method that is most convenient to them, thereby allowing it to reach a broader audience. I’m still a bit confused about the concept of media queries and how to apply them in my code, but I am sure this is something we will cover in class in the coming weeks.

I was able to upload my prototype homepage without issue using the GitHub desktop app, but I did find that the interface of my desktop app was different from what was featured in the “Getting Your Project on GitHub” article. Despite this, I found creating a new repository and adding my code files via the GitHub app to be relatively straightforward.

Here is my GitHub prototype homepage repository.

Getting Started: HTML Basics—and Some CSS

This week’s readings and Codecademy exercises helped to build upon the lecture from the first class by introducing the basics of HTML. When I filled out the pre-course survey that Greg circulated back in March, I recall mentioning that I had little to no knowledge of HTML, CSS, JavaScript, or any programming language, aside from the tiny bit of HTML that I learned while trying to customize my LiveJournal site when I was a high school sophomore back in 2004. I don’t consider that to be legitimate knowledge, and after completing the survey, I was even more eager to enroll in this class in an attempt to gain a deeper understanding of coding.

The Codecademy exercises were helpful and relatively easy to work through using the step-by-step tutorials. Prior to completing the Codecademy exercises, I read the “Really Basic Intro to HTML/CSS for Journalism Students” article, and was excited to learn how to apply the 15 “must know” HTML items mentioned therein. Reading through the descriptions of each of these tags did not do a whole lot in terms of increasing my understanding of the concepts, and I began the Codecademy exercises with a bit of trepidation about my ability to comprehend the basics of HTML.

I appreciate the structure of the Codecademy exercises—especially how I am forced to complete the tutorials one piece of code at a time, which helps me to remember it better as I move onto the next step. If I make a mistake on one part of the exercise, a red dot indicates that there is an issue that needs to be resolved before proceeding to the next part. While I appreciate having this indicator, I found the description of the issue that appears when I hover my mouse over the red dot to be a bit confusing at times, especially to someone who is new to coding. Nevertheless, I persisted and was able to complete the two exercises without too much trouble. I found myself in a groove and decided to move onto the next lesson about CSS, in which I was able to give my simple page a bit of formatting through the application of a basic style sheet. Even though I jumped ahead, this was the part I enjoyed the most because it allowed me to begin customizing the look and feel of the page.

As I worked through each exercise, I found myself having to refer back to the earlier steps in the lesson to ensure that I was correctly completing each one, lest I see the dreaded red dot appear. I hope to memorize and to be able to apply the basic HTML tags—something that Mindy McAdams mentions is important in her article “Get Started with Web Coding. Part 1: HTML and CSS”—within the next few days. Both McAdams and Codecademy reiterate that repetition, practice, and trial and error are key themes when learning to code, and this is something that Greg also told our class. By doing a little bit of coding and/or a Codecademy exercise each day, I can build the muscle memory that is necessary to learn some of the more complicated elements of coding. I know I have only begun to skim the surface of coding and web development, but I am excited to begin building my own site and documenting my progress on GitHub.

My Codecademy profile can be found here.

My GitHub test repository is here.

Beauty in Simplicity: The Internet, Programming, and Public Perception

My GitHub profile can be found here.

Prior to reading the “Timeline of Software and Languages” and “Timeline of Networking and the Web,” I was unaware of just how many different players and components were involved in forming the basis of the computing technology and internet that we know and use today. I especially enjoyed reading about and seeing the photographs of early computers and their initial applications in performing business functions. While early computers took up the space of an entire room, we now have computers in the form of mobile devices that fit in the palm of our hand and allow us to access information from nearly everywhere in an instant. The “How the Internet Works in 5 Minutes Video” also added to my baseline knowledge of computing and the internet. I found the video’s explanation of routers to be particularly enlightening. A router is something that many of us have in our homes, but I never fully understood how this device worked until watching this simple breakdown.

The two articles about computational thinking and journalism spurred my thinking about the intersections between the fields of programming, journalism, and public relations/communications. Students and professionals in these fields have the ability and opportunity to influence people’s thinking about current events, companies, organizations, and other people. As communications practitioners and journalists—and now as aspiring developers and programmers—what is our role in shaping the thought process of others and in influencing public perception, and how can we use programming language and web development tools to do this? I believe this class will give me the opportunity to explore the intersections and relationships between these fields.

As I read through “The Pragmatic Programmer Quick Reference Guide” and the software and programming philosophies, I noticed that each of these articles espouse several overarching themes that are also reflected in the timelines of programming and the web—ease of use, testing, improvement, and the continued pursuit of knowledge about coding and programming. In the Unix philosophy, one of the sections that stood out to me referred to the need to “encourage a software culture that knows that small is beautiful, that actively resists bloat and complexity: an engineering tradition that puts a high value on simple solutions…” (“Basics of the Unix Philosophy”). This idea that beauty lies in simplicity and ease of use for my target audiences and users will be a policy that guides my work throughout this semester. The WordPress software philosophy and GNU free software philosophy also lend credence to these themes. I am excited to learn how to use WordPress, and I am relieved to know that it has been designed to be easy to use and to adapt and improve for sharing with future users.

The aforementioned themes are important because I will use them as guiding principles for my work throughout this semester. How can I write code and develop a site that is simple, easy to use, and that caters to my audience’s needs while influencing their perception of my client or organization? How will I incorporate constant testing and self-guided learning to improve my programming skills and the look, feel, and user experience of my site? This summer, I look forward to learning as much as I can about the topic of web development, and will refer to the programming philosophies and reference guide as best practices to guide my efforts.