fb
BLOG

Why Your Grandma Should Learn to Code

Why Your Grandma Should Learn to Code

Alisa Kolot Hackbright Academy Coding Bootcamp

By Alisa Kolot, Hackbright Graduate, Software Engineering, September 2020

Many people are understandably nervous about making a career transition.

If you asked me a year ago if I would consider learning to code, I probably would have said absolutely not. Not because I wasn’t curious about it — I was intimidated by the mammoth task and I was scared that I was, frankly, not smart enough.

A rocky history of math classes in high school surely proved my point, I thought.

Now, as a Hackbright graduate, I can easily say that my fears were unfounded. Throughout my journey into code, I was supported and encouraged by my grandmother, who began learning C++ the first day Hackbright began for me.

This is the story of not one, but two career changes.

The following interview between granddaughter and grandmother was translated from Russian and edited for clarity. Alisa did another interview for Course Report, too!


Learning How to Code: Two Generations Apart

Alisa (Granddaughter): When did you first start to code?

Natalia (Grandmother): I started in the sixties when computers were introduced to the USSR. I started programming in machine code. Back then programmers wrote code by hand on the paper, then it was punched on punch cards that were inserted into the computer. We used big, clunky early computer machines: the Minsk 22, then Minsk 32, which occupied an entire room. They were very capricious machines; in the winter, they stopped working because of cold; in summer, because of heat (there was no air conditioning at the time).

How did you find out about programming?

I was very young! I was probably 21 or 22. I worked in the same lab as my husband. It was a very closed-off office with a toxic environment.

One of my friends helped me find a job at a museum where I discovered there was an educational center that held elementary programming classes. There, I met Flora, who became one of my best friends who introduced me to programming. She gave me a big book of standard programming and algorithms in machine code to help prepare for the job. Each command in the machine code took up four bytes. Reading the code was like decrypting hieroglyphics because all of it was in 32-bit commands.

Flora helped me land my first programming job: syntax translation for ALGOL, for engineering/math, and COBOL, for business into ALGAM.

How did you run code reviews?

We had an ongoing shortage of in-person programming time: that is, time you have to debug and run your programs on computer hardware. We learned how to debug our programs away from the computer which was tiresome but it taught us to be efficient. When we had to do complex debugging, our company would ask permission to rent another company’s computers at night, when the other programmers were away.

To debug our code we would request a scan of the [computer’s] whole memory. Each team member could see their own program and trace their own code in the memory. We learned how to write very sophisticated and concise code because we had to be very sensitive to the memory constraints.

What were the backgrounds of some people you worked with?

Nobody really knew what programming was at the time so there was no formal education for programming. I finished a degree in physics and a degree in radio technology. Some of my coworkers were people who got degrees in designing, or physical education, or bookkeeping. We just happened upon programming accidentally. Back then there were more women in the field; my husband even jokingly called them ‘girl programmers.’ He wasn’t excited about me going into the field.

When the profession just started there wasn’t a big buzz or prestige about it. Physicists, engineers, or mathematicians were considered a big deal — but programmers were under the radar.

Why did you begin coding again after a 30-year break?

That’s a good question. I wanted to know how programming evolved in the last three decades. Tutoring your brother was another big motivation. It was two birds with one stone, really.

The most important thing in programming is that you want to turn your brain around to think more like a computer. This idea turned into my project of creating a coding language for your younger sister called ‘Lucie’s Little Language” or ‘LLL.’ This primitive language was designed to develop algorithmic thinking, which is a skill to present the most difficult task as a sequence of elementary steps. It’s a very simple language, I know, but I created it for her so she can learn basic algorithms.

What kind of projects have you been working on?

So many! I am working with ‘Problem Solving with C++’  by Walter Savitch and I completed about 13 projects in Repl.it. Now I am continuing developing LLL.

Oh no! Repl.it isn’t always the friendliest environment.

Oh, it’s absolutely not! I’ve lost so much of my work because of it crashing, let me tell you.

I am so sorry! I will help you with installing VS code, I promise.

Well, now that you’re done with Hackbright, let’s get to it!

I think it will definitely be easier to develop a language using a real editor. What are some of your impressions of C++?

Yes, that one was a pain. What I learned about C++ is that it’s a very persnickety language: Rather than the programmer, C++ is trying to please the compiler. In terms of syntax and structure, it’s very eclectic, as though many people kept adding onto it. That’s why it’s unruly for the coder, especially for the beginners, because there are many ways to code one thing.

Can you tell me more about ‘Lucie’s Little Language?”

Yes. This is a language I designed that’s a cross between Python and  C++. I wanted to get your sister to start to get a taste of basic algorithms. She can print strings now and solve basic math problems. I left you a print out of the sample code on your desk. My main mission was that it would be easy for a twelve year old to write, so it’s a very, very primitive language.

Recently, you began working on another project in JavaScript and HTML. Can you tell me about your thoughts on JavaScript?

In my time, when you wrote your program, you passed it along to a special group to be compiled and edited. During editing, all the predefined functions your program needed to be included in the machine code of your program. Then you are completely disconnected from your program as it begins to live its own life.

In JavaScript you don’t have to worry about the compiler. You get these wonderful methods like ‘getElementById’ and so forth. Your program can dynamically retrieve the element of a page;  as a matter of fact, you can dynamically change your program to change the page background and text attributes.

Those methods are a lifesaver! At first, when I started learning JavaScript I was intimidated by the syntax. The language started to make sense to me when we began learning how to build a web page using embedded JavaScript, HTML, and later AJAX, and jQuery. I noticed that you’ve also started to use embedded JS. What resources have you used so far?

I’ve been referring to the book “JavaScript by Example” by Ellie Quigley. To me it’s really an emotional read. As I try to execute almost all its examples on my computer something might go wrong – that’s a new mystery! I can’t tear myself away until it works – thriller! And when you see real people, who created the language, behind the dry language of a textbook, and think why they invented this or that feature, and how lucky (or not) that or this invention was, it becomes a drama!

In general, I consider coding a very emotional occupation. Sometimes emotionality manifests itself in terminology. For example, “cookies” to my ear sounds mocking.

When I was working on my project at Hackbright I was so grateful to have JavaScript by my side. I created a web application that is similar to Instagram and Facebook; users can upload images, follow other users, and like and subscribe to their content. I was building features that allowed users to have different responses to uploaded media, a lot like Facebook reaction buttons. Thank goodness for functions like ‘onclick’ and ‘alerts.’ They’re a real life saver.

Aren’t they great? Say what you will about the syntax, but JavaScript is very flexible. It even seems like it’s a language that’s almost trying a bit too hard.

I found them very useful when I was working on the user interface for the web application. When I was working on the application I was really focusing on what I can get out of JS and Bootstrap for user engagement. I really had a lot of fun learning about how you can use CSS for different effects and buttons. What is your favorite thing about learning front-end?

Like a child, I’m having fun with color. I’m never working with a white screen. I’ve bookmarked a list of colors to try out for background and text color. One more great novelty for me – you can start the loop asynchronously, using setInterval and setTimeout with a recursive function. What a joy it was for me to see how color is scrolling along the bar, filling it gradually! I played with the bar shape and speed of scrolling. What I couldn’t do so far is gradually change color while bar scrolling.

That’s the fun of CSS and JavaScript together! I had a really good time when I was styling the page. It really made me think about the best way to create a profile page and feed for the users. I was really excited to use CSS animation for dropdown menus and forms, despite there being difficulties coordinating that with certain parts of the JavaScript code. Ultimately, I chose a clean, more direct user interface, that allowed users to experience their content first-hand without hindrance.  What are some challenges you discovered when working on your web page?

I think that the main challenge in developing a web page is that you deal not with one programming language but with three: HTML, CSS, and JavaScript. On the one hand this is good and corresponds to the idea of structuring: the content of what you see on the screen: HTML and CSS, both responsible for the visual part (color, location, etc), CSS, and JavaScript, which is the algorithm itself. On the other hand, syntax discrepancy, when the same things in the three languages look differently. For example, background color attribute is denoted:

  • In HTML – bgcolor
  • In JavaScript- bgColor
  • In CSS – color

In one language parameters/attributes are separated with semicolon, in other with colon, in third just with blanks; the values of the parameters are set with or without quotes. In HTML if you refer to function (in my example it is function startScroll) you use parentheses: .onClick =”startScroll ()”  in the same program, but in its JavaScript part you don’t: .setTimeout (startScroll, 20). It’s pretty difficult to remember.

Second, so to speak, conceptual problems are as follows: JavaScript wasn’t originally an object-oriented language but all elements behave like objects. From my point of view this conceptual unity sometimes creates unnecessary difficulties for programmers. For example, a method is considered an object property, but an object property is an object itself. So when you want to define some method for some object, at first, you define this method as a property:

car.display=printObject;

Then you define this method as a function:

function printObject() { …. Function’s statements }

Calling the method in your program, you use its name as a property but with parentheses for parameters as of function:

car.display();

It’s all a little bit cumbersome.

I can see that. I think everything becomes clearer when you have the JavaScript and CSS files separate from the HTML, and then import them. It really helps with code clarity as well as readability of the code. What are you planning on working on in the future?

In the past week I’ve been working on a project that creates a page containing JavaScript frames. I am planning to upload photos for my web page. Right now I’ve been practicing with uploading photos of my great-grandson.

But I am also learning about pop-up windows and how they work. I need to learn how to manage pop-ups to get my new web page to work.

Soon I’ll be able to help you with AJAX.

What is it?

It’s not quite a programming language, but rather a way for you to display changes to the parts of the page without actually needing to refresh it. I think you will be delighted to find how useful this is.

Oh, that’s in the future for me. I think that is toward the end of the book. I would be so happy to figure out AJAX. The next chapter for me is learning about the DOM.

Well, I would be happy to help you out with teaching you about the DOM in JavaScript. I really enjoyed that chapter and it really came in handy when I was working on my website.

Well, you learned these concepts very quickly at Hackbright and I am learning at my own pace. I am learning web development on my own time and the coding portion has been so interesting, despite that.

I think with coding you need to figure out what direction you want to go. As much as I enjoy learning about web development, I think it’s really exciting to look at the nitty gritty of programming, working within a system. This is more native to me; systematic programming. When I am working with the display, it’s more fun and exciting. Web development is more alive, user focused, and customization oriented. For a person with a more visual and artistic background web development is definitely a good direction.

As someone with a creative background I have to agree; I found that learning web development really appeals to my senses of designing web pages that are user friendly. To me, what’s really inspiring about software engineering is that there’s something for everyone. It’s a diverse field and with many opportunities. When I first got started I felt really intimidated by, well, the math and algorithms of it all. But I got incredibly lucky by finding Hackbright where I found an inviting community that inspired me to dig deeper and begin my journey into code.

I believe that you needed that support. It’s so interesting to me how software engineering is still considered more of a male profession. Originally, the first computer programmers were all women; even in my early days the majority of the team was female.

I agree, I certainly like to joke about becoming another ‘tech bro’ but I take pride in learning how to code and having strong female engineers to encourage me in my software pursuits. During Hackbright, I would call you while I was learning about run time or linked lists and ask you questions which you were happy to answer because you were learning object-oriented programming in C. And now it’s great to return the favor and help you with JavaScript, HTML, and CSS.

I think we do have a good habit of calling each other with questions to hash out problems or debug code over Zoom. Ever since your bootcamp, we both had a lot of time to discuss and mull over a wide variety of software engineering concepts and reflect on how coding changed both of our lives. It’s been a great chance for both of us to build a new skill and pursue projects. Especially during these times, it’s important to keep busy, keep building, and support each other.

How Can You Learn to Code?

You can attend a coding bootcamp just like Alisa did to learn to code. Hackbright Academy offers a 5-week Prep course centered around the programming language Python for complete beginners. We also offer a 12-24 week Software Engineering course that takes would-be coders and turns them into software engineers. Learn more about Hackbright.

Recommended Reading

Career Change: Is the Tech World Part of Your Future?

Python vs JavaScript: Why Choose Python?

Online Coding Bootcamp? Answer: Hackbright Academy

 

[easy-social-share buttons="facebook,twitter,mail" counters=1 counter_pos="inside" total_counter_pos="hidden" fixedwidth_px="70" fixedwidth_align="left" total_counter_pos="right" style="button" template="copy-retina" point_type="simple"]
RELATED POSTS
RECENT POSTS
November 09, 2023
The Shift Toward Cloud Computing and the Role of Cloud Engineers
October 31, 2023
Data Everywhere: The Future of Data Science and Business Intelligence
June 05, 2023
Version Control Systems: Subversion vs Git
June 05, 2023
Open-Source Programming and How to Contribute to Projects
CATEGORIES