A 21st Century Person’s Guide to 18th Century Love

Let me share with you a couple of quotes. Here’s the first:

“In vain I have struggled. It will not do. My feelings will not be repressed. You must allow me to tell you how ardently I admire and love you.”

That, of course, is from Mr. Darcy in Pride and Prejudice, one of my favorite novels of all time. (I get teased about this a lot because I always seem to bring up Jane Austen in almost every conversation. And that’s true. I believe Austen has a lot to say about many aspects of life. But I digress.)

And here’s the second quote:

“You put the boom-boom into my heart. You send my soul sky high when your lovin’ starts. Jitterbug into my brain (yeah, yeah). Goes a bang-bang-bang ’til my feet do the same.”

And that, I’m sure you know (unless you were born in the 90s and onward), is from Wham, one of my favorite bands from the 80s.

As you can see, there’s a world of difference between these two quotes, in the quality of their language and in their method of expressing themselves toward the object of their affections. The first is more elegant, passionate, and profound, whereas the second seems, well, superficial, vapid, and inelegant, although it does sound funny and fun. Perhaps this can be explained by the fact that both came from very different eras and milieus. Jane Austen’s Mr. Darcy came from a more intelligent era, one with a lot of nuance, sophistication, and self-control, whereas George Michael and Wham came from a more, let us say, frivolous period.

But this essay won’t be about the difference between these two eras and how they approach love. Rather, this will be about how to win the heart of the object of your love in the manner in which Mr. Darcy, or Elizabeth Bennet, won theirs.

Let me start by making two bold assertions.

The first is this: A Gentleman wants and needs a Lady, and conversely, a Lady wants and needs a Gentleman.

The second is this: To deserve a Lady, a guy must first become a Gentleman, and conversely, to deserve a Gentleman, a girl must first become a Lady.

(Of course, there are exceptions to this. A Gentleman, although he may naturally want a Lady, may choose to devote his life to a vocation or calling, and vice versa.)

In Jane Austen’s novels, what attracts a man to a woman are her qualities as a Lady: the beauty of her mind and character, and not primarily her external qualities. And what attracts a woman to a man are his qualities as a Gentleman: the beauty of his mind and character, and not primarily his external attributes.

There is a wealth of wisdom in this idea. We, moderns, have a tendency to think that a way to a woman’s heart, for example, lies in appealing to her senses by advertising our external traits, such as the size of our biceps or the extent of our net worth. What Austen is saying is that these are not what women really want in a non-superficial way, although some do fall for that trap, which is a tragedy. What Austen’s heroines find irresistible is a man who is not just a man, but a Gentleman.

It follows, therefore, that in order to win the heart of a Lady, you must first become a Gentleman, or in order to win the affections of a Gentleman, you must first become a Lady.

So how does one become a Gentleman, or how does one become a Lady? I think we can answer these questions by taking a look at the Gentlemen and Ladies in Austen’s fiction and identifying their most common traits. And then we can decide whether we want to emulate them or not.

So here are the attributes of a Gentleman:

1. A Gentleman writes well. He has a good command of language and is able to express his thoughts in a careful, elegant, and articulate manner. He also takes time to write to friends and family.

2. A Gentleman reads well. He knows the importance of books and reading and takes time to read quality literature.

3. A Gentleman thinks well. He is careful, clear, and logical in his thinking.

4. A Gentleman dresses well. He is excellent in his person and appearance.

5. A Gentleman is punctual. He wakes up early and is always on time.

6. A Gentleman is polite, courteous, and respectful. Good manners are essential for him.

7. A Gentleman converses well. For him, conversation is an art, and while there is always a place for light banter in any chat, words should be taken seriously and used responsibly.

8. A Gentleman, whether alone or in the company of friends or strangers, behaves or conducts himself well. He knows the importance of good breeding.

9. A Gentleman works well. He is thorough and excellent in his work and is able to achieve great things in his profession or enterprise.

10. A Gentleman recognizes objective and universal values. He knows that values such as truth, goodness, and beauty are not merely subjective, and therefore he is able to appreciate them as objective realities of human experience.

11. A Gentleman lives out the virtues. He is prudent, just, temperate, and has fortitude.

12. A Gentleman is faithful to his duties and obligations. He is able to see things through and fulfill his promises and responsibilities.

13. A Gentleman loves well. He is faithful to his beau.

14. A Gentleman prays well. He starts and ends his day with a prayer. He is aware of the central importance of faith in his life and morals.

15. A Gentleman, whether married or not, is chaste and pure in his heart, thoughts, and actions. He is mortified by any impurity in his words or deeds.

16. A Gentleman is a modern-day knight. He is noble, valiant, and gallant, and is able to defend himself and his beloved from any figurative dragons in life.

And here are the qualities of a Lady, at least so far as I have observed them in Austen’s heroines:

1. A Lady writes well. She, too, has a great command of language and is able to express herself in words thoughtfully, delicately, intelligently, and with elegance and grace.

2. A Lady reads well. She also knows that books are important for a healthy intellectual life.

3. A Lady thinks well. She takes care to think clearly and rationally, even as she relies on her feelings, hunches, or instincts to arrive at the best decisions.

4. A Lady dresses well. For her, dressing well or beautifully is not a superficial nor trivial thing.

5. A Lady converses well. She is careful, clear, graceful, and elegant in her words and expressions.

6. A Lady conducts herself well. She knows the importance of propriety and good breeding in her behavior.

7. A Lady works well. She devotes herself to whatever endeavor she chooses to pursue with thoroughness and excellence.

8. A Lady lives out the virtues. She is prudent, just, temperate, and when the situation calls for it, her courage rises to meet any challenge.

9. A Lady is faithful to her duties. She is aware that she has obligations and fulfills them.

10. A Lady loves well. Loving well and being faithful towards the objects of her love are traits that come naturally to a Lady.

11. A Lady prays well. She also recognizes the centrality of faith in her life.

12. A Lady is pure and chaste in her thoughts and actions. This comes much more naturally to her.

These traits, taken together, are what makes a Gentleman attractive to a Lady, or a Lady attractive to a Gentlemen.

It follows that in order to deserve a Lady’s affections and win her heart, a man must first become a Gentleman. And in order to deserve a Gentleman, a girl must first become a Lady. Both always aim to be excellent in their mind, character, and person and are therefore irresistible to each other.

This Valentine’s, if you want to start winning the heart of anyone you admire, you must first become worthy of their regard.

MongoDB, Mongoose, and the Fun Thing That is Data

I never thought I’d say this, but I had lots of fun handling (read: tinkering, manipulating, playing around with) data and databases this week.

(Isn’t that a super geeky thing to say? I mean, who says that? What kind of human being actually says he likes “managing data”. What a nerd.)

And yet, it’s true. I had lots and lots of fun this week learning about MongoDB and Mongoose.

What Kind of Animal is a Mongoose?

So that’s what we’ve been studying all week at Lambda School. In particular, we covered these topics:

  1. Importing data to the MongoDB database.
  2. Modeling relations between collections.
  3. Embedding documents in schemas.
  4. Linking collections together through refs (references).
  5. Populating data in endpoints.
  6. Querying data.
  7. Creating middlewares.
  8. Custom validations.

Essentially, MongoDB is a database. And Mongoose? Well, it can be defined in several technical ways: a JavaScript framework that you can use to interact with your Mongo database; an Object Data Modelling (ODM) library that helps you model your data; and etc. But what was most helpful for me was to think of it simply as a tool or technology that helps you use MongoDB more effectively and efficiently, in the same way that Express is a tool or technology that helps you utilize Node.js better.

The Problem That MongoDB Solves

Why use MongoDB if you can use Node.js? Well, the problem with Node.js is that as soon as your server goes down, your data goes down with it as well. So there’s no data persistence. With MongoDB, the data persists even if you “kill” the server. So that’s the problem MongoDB solves.

If you’re wondering what it looks like, here it is (running on Windows terminal):


The text “[initandlisten] waiting for connections on port 27017” indicates that your Mongo server is up and running.

Once you have that, you need to open a second terminal to run your “Mongo Shell”. It looks like this:

Mongo Shell

You can now navigate through your Mongo databases from here. All you need are a few basic commands:

  1. show dbs (to show the list of databases)
  2. use <insert database name here> (to choose a particular database)
  3. show collections (to open a database and list the collections within it)
  4. db.<insert database name here>.find().pretty() (to display the documents or data within each collection)

The First Things You Need to Know When Studying MongoDB

So the most important terms you need to learn when first studying MongoDB are these:

  1. Databases
  2. Collections
  3. Documents

Documents are simply data (e.g., json files) that are contained within collections, and collections, in turn, are directories contained within databases.

You can do CRUD operations on your data in the MongoDB database through the Mongo Shell in the same way that you can do CRUD operations on your data through Postman and Compass. That is to say, Mongo Shell, Postman, and Compass are these super cool tools that help you create, retrieve, update, and delete data or documents inside your MongoDB database.

Postman looks like this:

Postman June 9, 2018

And Compass looks like this:

Compass June 9, 2018

They’re pretty intimidating to use at first, but are fun to play around with when you get used to them.

They’re certainly very useful to use together when you’re creating your back end applications and testing your endpoints.

Sprint Challenge

By the way, I’m so happy I was able to get to a Minimally Viable Product during our weekly Sprint Challenge today. I worried that I won’t be able to do it because I initially got stuck in trying to wrap my head around the concepts of models, schemas, refs, and data population. I was overjoyed when I was able to create new databases and collections and store documents into them, and when I successfully tested them in Postman. How can technical things like these be so happiness-inducing?


Lambda Ambassador Program

I’ve signed up for Lambda School’s Ambassador Program because I literally cannot stop talking about my school. If you’re interested in getting into their Full Stack Web Development and Software Engineering course, go here: https://mbsy.co/lambdaschool/37941124.

A Fitbit for Programming

I just discovered (well, technically, it was shared to us by our Program Manager), this awesome tool called WakaTime. It’s a plugin for text editors or Integrated Development Environments (IDEs) that can track the amount of time you’ve spent coding. I started using it three days ago and this is what my stats look like:

WakaTime Stats as of June 9, 2018

Isn’t that super cool? It gives you data on how long you’ve been programming per day, what projects you’re working on, the language/s you used, and the editor you utilized. It’s gives you a super simple way of tracking your productivity.

It’ll probably enhance my development habits from here on out, much in the same way that Fitbit enhances the habit of running in runners.

One of the Best Ways to Learn Programming is to Teach Programming

It is a truism that one of the best ways to learn any new piece of knowledge or skill is to teach it to somebody. That has been one of the main reasons why I’m writing about my experience as a Software Engineering/ Full Stack Web Development student in Lambda School — to retain most of what I’m studying by teaching others about it or talking to people about it in public; in this case, through the medium of the Medium blog.

Last week, we began the back end side of programming by studying Node.js and Express.

What Are Node.js and Express?

In essence, Node.js is a tool that lets you write JavaScript codes outside the web server environment. (Note to Software Engineers: If I’m incorrect about that definition or any of my definitions here, please let me know in the comments.) Its purpose is to create web servers.

We used Express, a popular Node.js library and/or framework, to quickly build web servers. It was fun/fascinating stuff. Basically, we wrote codes that performed CRUD (or Create, Retrieve, Update, and Delete) operations on endpoints. CRUD corresponds to specific HTTP Resource Methods like POST, GET, PUT, and DELETE.

Wait a Minute, Mr Postman

In order to test whether our CRUD operations work (i.e., whether we are really able to create/post new items to our databases, retrieve/get those items (and specific arrays within those items), update/put those same items/arrays, and delete each one of them), we used this cool tool called Postman.


Postman was a big help to me in understanding how CRUD operations or HTTP resource methods worked. And writing the codes for each of those methods wasn’t that difficult because basically there’s a boiler plate for them. The only thing you need to do is understand how they work.

Last Month, I Had Zero Clue About What React Was. Today, I Built a React App.

Tons of things have happened since I last wrote about my Lambda School experience. I have so many things to share and I don’t know where to start.

Well, how about with this:

Front End Project

Building a React Web App From Scratch

That’s a note-taking web app I built using React. It looks quite plain, I know, but what’s amazing about this is that four weeks ago, I didn’t even know what on earth React was. (Remember how worried I was about learning applied JavaScript? It turned out that React was even more challenging to understand, at least initially, than the Document Object Model). Was it a language like JavaScript? Was it a framework? Was it a kind of software? (You can tell by the quality of my questions how much of a newbie I was.)

Now, of course, I know a bit better. It’s actually a JavaScript library for creating or rendering user interfaces.

Obviously, I didn’t build this up in a day. We were given the whole week this week to create and develop it. Our goal was to at least reach a Minimum Viable Product (MVP), and if there’s still time, to add more advanced features like refactoring React to include Redux (another JavaScript library that’s used to manage the state or data of more complex React applications), make the data persist (i.e., make the information that the user inputs into the app, in this case, the “notes”, stay within it), give it some search functionality, give it the ability to convert text into Markdown format, and many others.

Unfortunately, I didn’t get to do any of those stretch goals. But I was happy just to reach MVP.


Just to digress a little bit, I used to just hear about “MVPs” and “bringing a product to market” from podcasts and blogs. For example, I’m a big fan of the Y CombinatorMasters of Scale, and Indie Hackers podcasts. I hear about MVPs, users, product-market fit, “creating something people love”, and so on, all the time. So it’s super surreal that I’m actually starting to do these things already — that is, create a product or software, think about its UI and functionality, be sensitive about what users might want, and etc. To be sure, I still have tons and tons to learn about React and Redux, and miles and miles to go before I come to a place wherein I can say that I’m confident about my ability to build a good product, but at least now I have begun my journey.

Awesome Peers

Anyway, many of my peers were able to add several of those advanced features in their apps. A few of them were even able to do all those stretch tasksWe had a cohort-wide Demo Day earlier and many of their presentations were mind-blowing. It’s challenging enough to add Redux into your React codes, but to include all those other features? Truly impressive. Every single day at Lambda, I feel like I have walked into a room full of brilliant folks, geniuses even. To be honest, I sometimes imagine that I have wandered into a Harvard or Stanford classroom where everyone is just super smart and mentally quick.

Team Standup May 26, 2018

Of course, we’re kind of a mixed bag in our cohort. Some have prior, even professional, exposure or experience with programming. Others, like my wife and I, have only begun to code last March when the mini-bootcamp started. But there were a few who even with relatively-recent programming background was able to achieve impressive feats.

Thank You

So many people have reached out to me to thank me for writing about my journey with Lambda School. Some of them are incoming Lambda School students. I have nothing but gratitude for these guys, and to you dear reader, for reading my articles in the first place.

Next week, we’re going to begin learning about back end stuff. It will probably be more challenging than the material on front end, but it will be exciting nonetheless.

Trusting the System

Today, Lambda School’s fifth batch of students graduated. They demonstrated and defended their capstone projects in front of a panel. I was able to witness it a little bit. One comment from one of the students really struck me. He said to simply “trust the system”. A lot of the stuff that he was learning didn’t make a lot of sense to him during the second month of their curriculum. Heck, it didn’t make much sense to him during the fifth month, either. But suddenly, everything just clicked for him. Everything just made sense and came together: He already knew how to program and he didn’t even realize it.

So, yeah, I want to just “trust the system”, too.

The Fastest, Surest Way to Become a Software Engineer

If you’re interested in becoming a Software Engineer but still quite “ on the fence” about where to learn, let this article be the sign for you. Lambda School is probably the surest and fastest way of achieving that goal. The number of applicants is increasing, so the rate of acceptance will probably decrease a bit. You can increase your chances of getting in if you’ll do the pre-course work or the web development 101 course, which is free. Go here:


My wife and I attended the bootcamp in March. They’ve recently revamped the format to allow the would-be student to get to really experience what it’s like to be in Lambda School. So today’s applicants will get to watch an hour of lecture from an instructor, get to work on a mini-project or assignment for another hour, and have the chance to work with a team and project manager for the last hour to simulate a real team in a tech company.


The Office was a co-working space somewhere uptown frequented by web developers, software engineers, and startup founders. It buzzed with activity and energy during the day, and at night, as you can imagine, the place was bleak and desolate. Ryan liked to go there in the evenings because A, the bulk of his clients were based in the Western Hemisphere, and B, he detested people, or rather, he abhorred direct social interaction.

He parked his car in his usual slot, grabbed his backpack and “lunch” from the backseat, and made his way to the rear entrance. As usual, the Office was going to be all his again tonight. He will hole himself up in his cubicle and code for hours, prowl its dark corridors during his breaks, and convert its couches into his makeshift bed.

He held his proximity card in front of the electronic reader and pushed the glass door open. The scent of coffee immediately greeted his nostrils. The staff always made sure he had enough caffeine every night by preparing the coffee maker for him before they logged out of their shifts.

He closed the door behind him and slowly walked down the hallway.

What he saw, upon turning a corner, almost struck him dead. A girl was walking directly in his direction, carrying a mug in her hand. He couldn’t make out her face clearly, but it was surely a female, and he could see that she, too, was frightened out of her wits by the suddenness of their unexpected encounter. Her gasp was audible to him from where he was standing. The next moment, however, the girl let out a laugh and exclaimed, “Gosh, you scared me!” She had an accent he’s not familiar with.

Extending her hand, she said, “Grace.”


“I’m Grace,” she repeated when he did not respond. “And you are?”

For ten long seconds he could not, for the life of him, recall his own name. No one had ever asked him that before. Not point-blank, that is. He scanned his brain but was unable to retrieve the word that designated his person.

“whoAmI[‘name’];,” he muttered in panic. “console.log(whoAmI[‘name’]);”

“I’m sorry?” the girl said.

He didn’t hear her.

“const whoAmI = {
name: ‘ ‘,
age: ’25’,
location: ‘Cebu City’
},” he said. “console.log(whoAmI[‘name’]);”

She laughed again, and this didn’t help him at all. Blood rushed to his cheeks and all he could say was, “The name property is the object is empty incomplete. It can’t return my name.”

They didn’t speak much after that for he had marched straight to his cubicle, his head bowed down, and did not dare go out again. She did not have her own cubicle, so she took as her spot one portion of the long table directly outside his space. This table was reserved for those who did not want to rent their own private office.

He tried to code but couldn’t get any of his syntaxes right. He could hear her footsteps outside his door. She was talking to someone on her phone.

He stared at his monitor but couldn’t make sense of what his client was really asking him to do. He must have read the instructions a dozen times by now and checked the mockup twice as much, but none of it was registering to him.

He closed all of his applications, restarted his machine, and started afresh. He always did this whenever he felt like he was hitting a brick wall. It was a sort of ritual for him: whenever he was stumped by something — a User Interface he couldn’t render, a feature he couldn’t create, a problem he couldn’t solve — he always resorted to deleting his app’s codebase and begin again from scratch.

In a way, this kind of behavior paralleled his personal life: every time he couldn’t make things work out with someone, for example, he reacted by “deleting” this person from his life. This was what he did with Tanya, almost a year ago now. After telling him that all they could ever be were “friends”, he simply stopped seeing her, ignored her calls, and suppressed all memory of her down to his subconscious mind. He’s pretty sure he’s going to forget her name, eventually, give or take another year.

The knock on the door jolted him out of his musings.

“Hey, sorry about earlier,” the girl called out. “Did I embarrass you? I felt as if I did. If so, I apologize.”

This girl was very sharp. He had spent less than a minute in her presence and already she has read him through and through. Among all the other species of females, he thought, this type was the most dangerous.

“Are you there?” she said.

He had to make some sort of a reply. “Yeah,” he said finally after clearing his throat. “No need to say sorry. It was my fault.”

“Truth is, I’m really glad I’m not alone tonight,” she said behind the door. “This place gives me the creeps, to be honest.”

She waited for his reply.

“Are you new here, too?” she said. He still hasn’t opened the door.

“Yeah, I mean, no,” he stammered. “I’ve been here a while.”

“Oh. I’m new here. Obviously. Tonight’s my first night,” she said.

She waited again.

“So,” she continued. “Where are you connected?”

“I work freelance,” he said.

“Great,” she said. “Are you a developer?”

What gave me away, he thought. “Yes,” he said.

“I guessed as much,” she said.

He felt like the rudest human being on earth for not opening the door for her. Even a weirdo like him knows that he should at the very least open up and invite her in, but he figured that if he only waited for a few seconds more, this conversation, awkward as it was fast becoming, was eventually going to wind up, and she will go away and leave him alone.

It did not end, however, and she did not go away. They talked for a few minutes more. Their conversation was interspersed by numerous bouts of silence, long pauses, and embarrassing “dead airs”, but it stretched on and on and on. He found out that she has just started her own startup and that she was scouting for a technical co-founder. He learned that she’s originally from Sweden, but that she grew up in Germany, finished university in Amsterdam, and is currently traveling Asia to do two things: first, to “find herself”, a very cliche and unoriginal undertaking, she said, and second, to build a company around a tech product she has developed as an intern in Google. She’s a software engineer, too. She did the first phase of her goal last year and is now intent on doing the second.

And the funny thing was, he didn’t mind all this interaction at all. He found that the more he listened to her, the more at ease he felt around her. The more she spoke, the lighter his mood became. And the more he opened up and responded to her, the more he “found” himself, if that makes any sense. He loosened up and rediscovered the joy of “small talk”.

In fact, he got too comfortable that he finally stood up and slid his door open.

You can understand a program. It has its own logic, rules, and algorithms. You can comprehend a component. It has its own language, codes, and syntax. You can definitely cognitively grasp an app, which is composed of programs and components. You can break it down into smaller pieces and make sense of it. You can hold it up in your mind’s eye and peruse it. And that is what he’s been doing all these years — staring at applications upon applications. Analyzing them, thinking about them, and deriving satisfaction from having understood them.

He felt like he can stare at this girl for hundreds of years and not come close to any satisfaction of understanding her. There’s something about her that glows and bursts forth out of her face and skin. Seeing her more clearly now under the orange light above her head and at a closer distance than earlier, he is utterly, completely perplexed. She was her eyes yet she was not her eyes. She was her nose and lips yet she was not her nose and lips. She was her shoulders and arms yet she was neither of those. Her meaning was not contained within any of the physical parts that compose her. You cannot break her down. You cannot make sense of her. She doesn’t have definite properties that you can analyze and map as data, but it’s undeniable that some sort of language was flowing from her, whether she opened her mouth or not.

He took a deep breath and leaned on to his desk for he was quickly losing his balance.

“Ryan,” he said. “Yes, that’s my name. My name’s Ryan.” He remembers it now.

I Went From Dreading JavaScript to Liking It In One Week

A week ago, I expressed apprehension about learning JavaScript. I had the impression that it was going to be a very tough programming language to understand.

Well, I’m actually wrong. It is not really that difficult to understand. You only need to learn its basic terms, concepts, and principles, and voila, you’ll have a working understanding of how it operates.

What We Learned So Far

Throughout this week, that is exactly what we learned in Lambda School — we were taught the fundamental concepts, terms, and principles in JavaScript that will enable us to do effective web development and functional programming.

What were these lessons and concepts? They are numerous, but these are some of the most important:

  • Data Types
  • Variables
  • Arrays
  • Objects
  • Functions
  • Callbacks
  • Closure
  • Function Scope
  • Block Scope
  • Array Methods
  • .forEach, .map, .reduce, and .filter
  • The ‘this’ Keyword
  • Implicit, Explicit, Window, and New Binding
  • Prototypes
  • Constructor functions
  • The ‘class’ Keyword
  • The ‘extend’ Keyword
  • The ‘super’ Keyword
  • Classes

Easy at First

The lessons started out as easy. Data types, variables, arrays, and functions are pretty simple concepts to understand. Data types are the different kinds of data that are dealt with in JavaScript, such as numbers, strings (which can be letters, numbers, and etc., that are enclosed in quotation marks), and Boolean values (i.e., true or false). Variables are just like boxes that can contain values. Arrays are similar to variables but they can contain multiple elements or data, each of which sits on an index. Functions are like little programs that are composed of statements that can do specific tasks.

But as we progressed, our lessons became a bit more challenging. Callbacks are “Higher-Order Functions” or functions that can take in other arguments. Closure refers to the function and the environment within which it is created or defined, including the variables in that environment (i.e., the global scope). Methods are functions that are created inside objects. And so on.

For someone encountering JavaScript for the first time, or relatively recently,  the above ideas are not easy to grasp. A friend in our cohort mentioned to me that it took her many months, or maybe even over a year, to actually begin to understand JavaScript.

What Helped Us Learn

What helped us learn JavaScript are the following:

  1. Reading the curriculum materials/ resources/ documentation prior to class.
  2. Listening intently to the lecture and absorbing as much information as we can.
  3. “Learning with our fingers” (i.e., coding, coding, and coding).

The last one was especially effective for us. As I mentioned before, we would show up to our little office for 2-3 hours before class just so we could review and type out the sample codes in our machines. Then after class, we’d linger for 2-3 hours more just so we could type more. None of this means that we’re good at what we’re doing. It only means that we’re still at the beginner level so we need to catch up by putting in more hours and effort to hammer away at the keyboard.

Awesome Instructor

We are so fortunate because our instructor is such an awesome guy. He is extremely good and experienced in Web Development and he has the ability to teach the concepts in ways that beginner programmers can easily understand. Josh Knell has been in the industry for a very long time. He’s been an adjunct professor in Computer Science and teacher at coding bootcamps for several years. One of the most helpful advice that he reiterates is “Fingers on the keyboard and brain on the lesson”, or words to that effect, which is a really good rule of thumb when learning programming.

One other thing that I really appreciate is that he doesn’t assume that his students can get the lessons right away, or that we can master the concepts quickly or in one go. He always goes to the basics and emphasizes the fundamentals, while at the same time assuring us that we’re doing great.

Layer by Layer

The way the curriculum is designed is that it builds itself up one layer at a time. For instance, on the first day of the week, we powered through the absolute basics — data types, values, functions, and so on. On the second day, we learned about callbacks and closures. On the third and fourth day, we learned about constructor functions, prototypes, and classes. On the fifth day, we tied everything together and applied what we’ve learned in a Sprint Challenge.

So by the end of the week, we already had a good grasp of the week’s lessons. We were given a bird’s eye view of how the pieces come together.

My favorite lesson is the one on constructors and classes. They’re very fascinating. Sets of data, which is what objects contain, are very interesting. They can make a geek out of you. (I’m actually struck by the idea that the process of learning computer science and software engineering is actually a process of becoming a total geek, but that’s a topic for another article.)

Coding Thousands of Miles Apart

Pair Programming

By the way, I really enjoyed Pair Programming. My partner lived in San Diego, so our time difference was huge. But I really loved the experience. It was so surreal to be able to work with someone who’s half-way around the world from you. We did it for almost 4 hours, which is insane, but we hardly felt that time passed. I learned a lot from her, and it made me appreciate more the process of programming.

I think Pair Programming serves multiple purposes:

  • To bring you out of your comfort zone and compel you to become better. You wouldn’t want to be ill-equipped and unprepared when working with a fellow programmer, would you? So the expectation that you’re going to pair-program is going to push you to prepare and practice so that you’ll be able to work at the same level with your partner.
  • To help you develop your communication and interpersonal skills. Social skills are crucial for engineers since they’ll always be working as a team under project managers.
  • To help you learn from your partner and/or impart knowledge and skills to him or her. The students in our cohort are very diverse in terms of background, occupation, profession, gender, age, and location. Some have prior experience with computer science, and some do not. Some are very new to programming, and some have more advanced exposure to the field. There’s always an opportunity to teach and learn.

Cool Tools

I just love our tools! I love to edit with VS Code and tinker with Nodemon. I love the sheer act of typing at the terminal. And I love to add, commit, comment, and push files up to GitHub. I find them to be strangely addictive. Or am I just being too weird and nerdy? Good. A geek is exactly what I want to become (although I already sort of am).

Applying JavaScript

Next week, we’re going to learn how to apply JS on web development. We’ll be talking about Document Object Model (DOM).

I have no idea what that is (or at least I only have a vague clue) but I’m eager to find out.

Quote of the Week: John Collison

John Collison

“Help each user personally. Sure that won’t scale to a very large size, but when a startup is just starting out, it really helps you have an advantage as a small and nimble company.”
— John Collison