IndyWatch Education Feed Archiver

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

IndyWatch Education Feed was generated at Community Resources IndyWatch.

Tuesday, 22 May


370 Online Courses With Real College Credit That You Can Access For Free freeCodeCamp - Medium

These days, more and more universities are offering for-credit programs through Massive Open Online Courses (MOOCs).

What started with a small number of degree programs, such as the iMBA from the University of Illinois (Coursera) and Georgia Techs Online Master of Science in Computer Science (Udacity), has given way to dozens of MOOC-based programs that can confer university credit.

Many of these new programs are essentially partial degrees. For example, edXs MicroMasters can result in college credit amounting to around one semester of a masters degree. Some of these online courses are the exact same as what on-campus students take.

The catchand yes, there is a catchis that in most cases, in order to convert MOOC coursework into university credit, you have to be enrolled in a program at a university. And that usually means going through an admissions process and paying tuition.

Still, it is significant that the general public can audit the very same courses that paying students are taking for university credit.

I recently made a list of all the courses I could find that are part of for-credit programs and are still free to access. My search turned up at least 370 courses from 49 different universities, on topics spanning technology, business, the arts, and engineering.

Notably, the two-degree MOOC-based degree programs I mentioned earlier (iMBA and OMSCS) are both available to audit for free in their entirety.

Heres the full list of for-credit MOOCs that you can access for free

Business (140)


Becoming an Effective Instructor on Camera: Tips from the Art Directors Studio Coursera Blog

By: John Heijligers, Art Director for EIT Digital at Eindhoven University of Technology.

Creating engaging videos is one of the greatest challenges for online teaching, as video can create learning experiences that go beyond the classroom. The instructors enthusiasm and passion for the topic is crucial when it comes to creating an engaging video.

As a medium, video offers unique opportunities for creativity. Instead of merely describing a formula used to build self-driving cars, you can go to the factory that manufactures them to shoot the lesson. Creating what I call didactic air, or pace to breathe between challenging lectures, helps make an online course more successful. However, not all instructors transition naturally from the lecture hall to the studio. Here are 5 tips to help you become an effective video instructor:

  1. Develop new skills for online teaching
    At the University of Technology in Eindhoven, studios are equipped with cameras, a green screen, lighting, and a large edit bay. This array of tools sometimes makes novice online instructors anxious. When instructors work to develop on-camera skills, such as voice and breathing techniques, they become more effective online teachers. These skills dont always come naturally, but they can be learned.
  2. Focus on the learner
    In our training programs we highlight the importance of enthusiasm and focus. The learner should always come first! A good way to shift an instructors focus to learners is to ask key questions. Who are your learners? Are they beginners or experts?? What do they hope to achieve?
  3. Awareness is crucial
    Contrary to some instructors expectations, teaching in front of a camera is a very different experience from teaching in a classroom. In order to empower instructors to teach effectively on camera, its important they review their own videos in order develop a strong self-awareness of their delivery and communication style.
  4. Address anxiety
    Nervousness usually impacts performance and delivery. Fortunately, there are ways to alleviate this. First, acknowledge that its okay to be nervous! Next, go over the video production process step-by-step before you perform. Dont forget a good warm-up it can go a long way. Youll feel better if you feel prepared before you go on camera.
  5. Passion for knowledge is contagious
    When instructors are passionate and enthusiastic, they form connections with learners that boosts motivation. One simple way to achieve this is smiling! Smiles at the start and end of a video makes a difference because it communicates openness. To add happiness to a video,  well sometim...


Questions to ask when hiring a product designer for a startup freeCodeCamp - Medium

A how-to guide on finding hidden gems in the crowd

Courtesy: Mike Shannon

Finding the right person for a startup can be hard, but finding the first product designer to strengthen your product in terms of aesthetics and usability may be even harder. From the very beginning, you want someone who is capable of leading the design process. You want someone who will do everything they can to solve the problems of your users and will make the product lovable and easy to use.

We had this hiring challenge recently at Kepler, because we were trying to find a design rockstar for our new product. While we were interviewing a bunch of product designers, I came up with a list of questions that now helps us scan potential hires like an X-Ray.

As Facebooks Director of Product Design Julie Zhuo once said,

At a startup, you need your first one or two designers to be versatilegreat jacks-of-all-trades Not only do they need to deeply understand and think through product strategy, they also need to have good interaction chops and decent visual sense, since theyll be doing everything from designing the UX to thinking about the brand to designing iconsthey need to have a diverse skill set.

Pro Tip: Always remember that you should judge an artist by their work. Dont just blindly rely on a simple conversation to reveal their true personality and skillset.

However, the information youll get out of asking the below questions will help you understand whether you are interested in seeing this potential hires work.

Afterwards, some form of test task relating to your product design challenges would be a perfect next step.

Here are my favorite questions to ask. Ill discuss why you want to ask them, and what kinds of information youd hope to hear in response.

1. In your opinion, what is a product design?

Why you should ask: Product Design is an extremely interdisciplinary domain connecting business, psychology, technical skills, and so on. Not only do you want a potential hire to understand that, but you also want them to explain how theyve applied this knowledge in their previous work.

What you want to hear: One of the candidates I interviewed delivered a good answer:

Product design is a mix of business needs, visual appearance, and leadership. Thats why it is so hard, because you have to be good at all three things at the same time if you want your product to be successful

This showed he really knew what he was doing.



An applied introduction to LSTMs for text generation using Keras and GPU-enabled Kaggle Kernels freeCodeCamp - Medium

Kaggle recently gave data scientists the ability to add a GPU to Kernels (Kaggles cloud-based hosted notebook platform). I knew this would be the perfect opportunity for me to learn how to build and train more computationally intensive models.

With Kaggle Learn, Keras documentation, and cool natural language data from freeCodeCamp I had everything I needed to advance from random forests to recurrent neural networks.

freeCodeCamps dataset on Kaggle Datasets.

In this blog post, Ill show you how I used text from freeCodeCamps Gitter chat logs dataset published on Kaggle Datasets to train an LSTM network which generates novel text output.

You can find all of my reproducible code in this Python notebook kernel.

Now that you can use GPUs in KernelsKaggles, cloud-based hosted notebook platform with 6 hours of run time, you can train much more computationally intensive models than ever before on Kaggle.

Ill use a GPU to train the model in this notebook. (You can request a GPU for your session by clicking on the Settings tab from a kernel editor.)

import tensorflow as tf
# See
config = tf.ConfigProto()
config.gpu_options.allow_growth = True

Ill use text from one of the channels most prolific user ids as the training data. There are two parts to this notebook:

  1. Reading in, exploring, and preparing the data
  2. Training the LSTM on a single user ids chat logs and generating novel text as output

You can follow along by simply reading the notebook or you can fork it (click Fork notebook) and run the cells yourself to learn what each part is doing interactively. By the end, youll learn how to format text data as input to a character-level LSTM model implemented in Keras and in turn use the models character-level predictions to generate novel sequences of text.

Before I get into the code, what is an...


How to set up Tensorflow.js for machine learning in your browser freeCodeCamp - Medium

Until recently, just getting started writing your first line of machine learning code required a hefty upfront investment in time and money.

Last year, I built my own PC specifically for machine learning. I researched the parts and assembled it myself. Just doing that cost me around $1600 and 30 hours of setup time. Im still trying to wrangle the computers configuration and libraries and make it work with various frameworks.

The good news is that getting started with machine learning today has never been easier. In fact, if youre reading this, it means you already have the tools you need to dive right in. You can now learn the machine learning framework Tensorflow right in your browser, using JavaScript.

On the software side, there were an equally daunting number of tools to master before I could even get the most basic examples running. For example, Jupyter notebooks, numpy, scikit, and pandas.

I come from the JavaScript world, and I like it. If I could have gotten started with machine learning with JavaScript, I would have jumped at the chance. Today, thats possible.


Google I/O 2018 by Bruno Sanchez-Andrade Nuo

Google released Tensorflow.js at the Google I/O 2018. There are some huge use cases for running machine learning algorithms in the browser.

In addition, its a great opportunity to use JavaScript to explore machine learning concepts without having to install a thing.

If youre new to JavaScript, or if its been a while since youve written any front-end code, some of the recent changes in the JavaScript ecosystem might throw you for a loop. Ill list the basics of modern Javascript you need to get the Tensorflow.js examples running, and start exploring machine learning.

Setup tutorial

Let me repeat something: all you need to run Tensorflow.js is your web browser.

Its easy to lose sight amongst all the talk of transpilers, bundlers, and packagers, but all you need is a web browser to run Tensorflow.js. The code you develop locally is the sa...


Why you should use functional composition for your full applications freeCodeCamp - Medium

Function composition is growing in popularity, so I say its about time we considered composing full applications. Give me a few minutes of your time, and well see if you agree!

Two problems

Imports are an amazing addition to the JavaScript language. They allow you to split code into small modules and only import what you need. Problems arise because any exported functions will now come with the assumed context of those imports. Well look more deeply into those problems in a moment.

The problem with object-oriented languages is theyve got all this implicit environment that they carry around with them. You wanted a banana, but what you got was a gorilla holding the banana, and the entire jungle
Joe Armstrong

Next, try to remember the last time you started to work on someone elses project. Did you find yourself wondering where the database connection was? Where the websockets were initially instantiated?

Finding what you need in an application can be very difficult when applications arent composed. It can be daunting to have to follow the chain of imports, particularly if you arent starting at the entry of the application.


I recently calculated the average number of import statements across all files in each of the apps Im working on. I came up with an average of about 750. The highest was over 2500, and the lowest was around 300.

Each of those imports means that when writing tests, I would be forced to test the imports along with the exported code. To avoid testing the imports, I can overwrite them with a library like proxyquire or jest. This works, but at the cost of adding a significant amount of complexity to each unit test.

Do you like complexity? I sure dont.

Walking the dependency tree

Following the import path of an application to find a specific component is a very common task for developers.

Each file imports its dependencies, so you may find yourself following links from one file to another to find the component youre looking for. Read this database example and see if it sounds familiar

  • You start out in the index or main function, then see that it imports a server
  • That server imports routes
  • Those routes import services
  • Next, you see that the services import models
  • Then the models import the database
  • Finally you find that the database imported is actually a singleton that instantiated the connection the first time it was imported. It did this by importing a third party library.
Me after following that many levels of imports

Another Way

Do you think this seems a little backwards?

I think it would make...


How to auto-create CloudWatch Alarms for APIs with CloudWatch Events and Lambda freeCodeCamp - Medium

In a previous post, I discussed how to auto-subscribe a CloudWatch Log Group to a Lambda function using CloudWatch Events. The benefit of this is that we dont need a manual process to ensure all Lambda logs are forwarded to our log aggregation service.

Whilst this is useful in its own right, it only scratches the surface of what we can do. CloudTrail and CloudWatch Events make it easy to automate many day-to-day operational steps, with the help of Lambda of course 

I work with API Gateway and Lambda a lot. Whenever you create a new API, or make changes, there are several things you need to do:

  • Enable Detailed Metrics for the deployment stage
  • Set up a dashboard in CloudWatch, showing request count, latencies, and error counts
  • Set up CloudWatch Alarms for P99 latencies and error counts

Because these are manual steps, they often get missed.

Have you ever forgotten to update the dashboard after adding a new endpoint to your API? And did you also remember to set up a P99 latency alarm on this new endpoint? How about alarms on the number of 4XX or 5xx errors?

Most teams Ive dealt with have some conventions around these, but they dont have a way to enforce them. The result is that the convention is applied in patches and cannot be relied upon. I find that this approach doesnt scale with the size of the team.

It works when youre a small team. Everyone has a shared understanding, and the necessary discipline to follow the convention. When the team gets bigger, you need automation to help enforce these conventions.

Fortunately, we can automate away these manual steps using the same pattern. In the Monitoring unit of my course Production-Ready Serverless, I demonstrated how you can do this in 3 simple steps:

  • CloudTrail captures the CreateDeployment request to API Gateway
  • CloudWatch Events pattern against this captured request
  • Lambda function to enable detailed metrics, and create alarms for each endpoint

If you use the Serverless framework, then you might have a function that looks like this:



Playful Math Education Carnival 116 at Following Learning Denise Gaskins' Let's Play Math

Check out the latest carnival of playful math for all ages:

Each monthly carnival brings you a great new collection of puzzles, math conversations, crafts, teaching tips, and all sorts of mathy fun. Its like a free online magazine of mathematical adventures. What fun!

Simon Gregg put this carnival together a few weeks ago, and I should have posted a link before now, but its been a hard few months here, and too many things got shoved aside. Still the posts are evergreen helpful and inspiring no matter when you read them.

This carnival offers summer camp activities, dancing geometric patterns, new books to enjoy, pattern blocks, the math of peg solitaire, Q-bitz fraction talks, and a taste of some great math conversations on Twitter. And plenty more!

Click Here to Read the Carnival Blog

Want to Join in the Fun?

Do you have a favorite blog post about math activities, games, lessons, or hands-on fun? The Playful Math Blog Carnival would love to feature your article!

We welcome math topics from preschool through the fir...


How I went from not knowing how to code to shipping 9 projects in 9 months all before my 15th freeCodeCamp - Medium

How I went from not knowing how to code to shipping 9 projects in 9 monthsall before my 15th birthday

Ive been making (a lot of) things for about a year now. Most of my time is spent hacking, building, and learning.

This is the story of how I got started coding. Ill share how I overcame the challenges of procrastinating and being lost, and how I built nine apps in nine months and discovered what I love doing.

How reading got me into tech

It all started with reading books. I really enjoy reading, so I got my Dad to buy me a Kindleand I loved it! I used it for about an hour every day for the first six months or so. I even wrote a review for it, which got published by a local newspaper

The 11 year old me had a few ideas to make the Kindle cooler, so I wrote an email to JEFF BEZOS. THIS EMAIL:

How did I know Jeff Bezos email? I didnt. I just tried googling but wasnt sure what it would be, so I put in all the combinations of jeff and bezos and his initials that I could think of.

One of them must have gone through, because about two months later, my mom got a call asking for me. I had put her phone number in the email.

This was the conversation I remember having:

Amazon Guy (A): Hi, is this Samarth?
Me: Yes this is Samarth. Samarth is my name. You can also call me Sam.
A: Great, Im name of amazon guy! Sam, you had written an email to Jeff Bezos a while ago, Im calling to talk to you about that. We would love to hear your ideas about Amazon and Kindleand it would be great to have you over to our Chennai Office, where we make Kindle and more devices.

At this point, Im confused about if this is real or if someone is joking with me.

Me: Let me put you on hold for a minute.

Mutes phone, goes to parents. Tells them what happened. They say continue talking.

Me: Wow that would be amazing! Can you give me a few more details?
A: Sure, were ready to have you and your parents over whenever you can come this month, and we will book your tickets and your stay. Youll be coming over to our office, and you can look at some cool new stuff were building and even meet the team to share your ideas.

Now Im sure this is fake, it couldnt be realright?!

Me: That sounds great! Can I talk this over with my parents and get back to you?...


Peoples History Workshops in Charlottesville Zinn Education Project

Its been almost a year since white supremacists marched through Charlottesville, Virginia, in a deadly display of hate. In response to their defense of a monument to Confederate General Robert E. Lee, and the tragic murder of anti-racist activist Heather Heyer who attended the counter-protest, Zinn Education Project Organizer Adam Sanchez wrote an article for our If We Knew Our History column, encouraging educators to take the fight against white supremacy into our schools.

More recently, educators in Charlottesville invited Sanchez to facilitate a full-day workshop at the University of Virginia. The workshop focused on teaching the Black freedom struggle from the resistance of the enslaved and abolitionists during the Civil War, to the heroic efforts to reshape society during Reconstruction, and finally with an exploration of the powerful organizing of the Student Nonviolent Coordinating Committee.

Charlottesville Workshop | Zinn Education Project

Heres what some of the teachers who participated in the workshop had to say:

I liked going through parts of the lessons to get a feel for them.

Very engaging, great exposure to materials and this teaching approach.

Great examples of role-playing and interior monologue.


Monday, 21 May


Tackling the causes of mental illness is the only way were really going to help people get better IN DEFENCE OF YOUTH WORK

psysocial change

Further to our last post, What future in mind? Critical Perspectives on Youth Wellbeing and Mental Health Psychologists for Social Change argue powerfully that Tackling the causes of mental illness is the only way were really going to help people get better.

If we dont examine the wider context of why and how someone develops their distress, the problem can end up being situated inside the person. It is a persons brain that is the problem and not these wider factors. This individualisation of psychological distress not only puts the onus for recovery squarely on the individuals shoulders, but it shifts the focus away from the societal, cultural and political factors which contribute to people being in these positions in the first place.

Thinking about mental health as something that starts and stops with the individual is never going to lead to a healthier and more connected society...


Goldman Sachs 10,000 Women on Coursera: A Business Education for Women Entrepreneurs Coursera Blog

Having met its goal of reaching 10,000 women through an in-person business education program, Goldman Sachs 10,000 Women is now leveraging technology to reach many more women entrepreneurs in emerging economies. Were excited to announce that the Goldman Sachs 10,000 Women program is now on Coursera.

Through this digital learning experience, developed with the University of Leeds, entrepreneurs have access to discussion forums to share their experiences and give and ask for support. The rigorous course is free and fully funded by the Goldman Sachs Foundation.

We interviewed a few graduates of the 10,000 Women program to learn more about their experiences and thoughts on why women small business owners should join the 10,000 Women community. Heres what they had to say:

1. What has been the impact of graduating from 10,000 Women personally and professionally?

Seema, 10,000 Women graduate, India: 10,000 Women has absolutely changed me personally and professionally. After graduating from the program, I saw tenfold growth, created my first marketing strategy, and went from 6 to 45 employees. After completing the course and seeing those results in my B2C business, I saw a need to develop a B2B concept to address growing demand. Now, we no longer just procure cabinetry, we customize it in our own warehouses. Personally, this program gave me the confidence in my actions because I kn...


Goldman Sachs Foundation Partners with Coursera to Extend the Reach of 10,000 Women Initiative Coursera Blog

Since launching in 2008, the 10,000 Women initiative has helped thousands of women around the world build thriving businesses. It has provided them with quality business education, networking opportunities, and capital that would otherwise have been impossible to access. Among the programs thousands of success stories are women like Seema, a recent graduate from India who was able to transform her small cabinetry business on the back of the program, growing her employees from 6 to 45 and increasing revenue tenfold.

Now, in its tenth anniversary year, Im excited to share that 10,000 Women is partnering with Coursera to launch a one-of-a-kind course that will extend the reach of this important initiative to women entrepreneurs around the world.

At Coursera, weve always been passionate about working with organizations who share our belief that providing access to quality education can transform peoples lives. With the launch of this course, were excited to help the Goldman Sachs Foundation ensure that women entrepreneurs everywhere can reach their full potential through access to a world-class business education.

The new course covers a full range of business topics across 11 core modules. Its delivered via Courseras innovative and interactive online platform, providing participants with a unique forum to share their experiences as well as provide support and advice to others. By the end of the course, learners will have created their own Business Growth Plan to help them continue to grow and evolve their businesses. They will also be part of a global network of like-minded alumnae passionate about growing their businesses and helping each other succeed.

Goldman Sachs 10,000 Women on Coursera is free. The program is designed to support women business owners in developing markets that employ at least 3 people and earn at least $50,000 (USD) in revenue per year. Once theyve completed the course, all graduates will receive a ...


Why Im automatically deleting all my old tweets, and the AWS Lambda function I use to do this freeCodeCamp - Medium

From now on, my tweets are ephemeral. Heres why Im deleting all my old tweets, and the AWS Lambda function Im using to do all this for free.

Stuff and opinions

Ive only been a one-bag nomad for a little over a year and a half. Before that, I lived as most people do in an apartment or a house. I owned furniture, more clothing than I strictly needed, and enough stuff to fill at least a few moving boxes. If I went to live somewhere else, moving for school or family or work, I packed up all my things and brought them with me. Over the years, I accumulated more and more stuff.

Adopting what many would call a minimalist lifestyle has rapidly changed a lot of my longstanding views. Giving away all my stuff (an idea I once thought to be interesting in principle but practically a little bit ridiculous) has become normal. Its normal for me, now, to not own things that I dont use on a regular basis. I dont keep wall shelves packed with old books or dishes or clothing or childhood toys because those items arent relevant to me anymore. I just keep fond memories, instead.

Imagine, for a moment, that I still lived in a house. Imagine that in that house, on the fridge, is a drawing I made when I was six-years-old. In the bottom right corner of that drawing scribbled in green crayon are the words broccoli is dumbVicky, Age 6.

If you were in my house and saw that drawing on the fridge, would you assume that the statement broccoli is dumb comprised an accurate and current account of my opinions on broccoli? Of course not. I was six when I wrote that. Ive had plenty of time to change my mind.

Social media isnt social

I have a friend whom Ive known since we were both in kindergarten. We went through grade school together, then spoke to and saw each other on infrequent occasions across the years. Were both adults now. Sometimes when we chat, well recall some amusing memory from when we were younger. The nature of memory being what it is, I have no illusion that what we recall is recounted with much accuracy. Our impressions of things that happenedmistakes we made and moments of victory alikeare coloured by the experiences weve had since then, and all the things weve learned. An awkward moment at a school colleagues birthday party becomes an example of a child learning to socialize, instead of the world-ending moment of embarrassment it probably felt like at the time.

This is how memory works. In a sense, it gets updated, as well it should. People living in small communities remember things that their neighbour did many years ago, but recall them in the context of who their neighbour is now, and what their current relationship is like. This re-colouring of history is an important part of how people...


How and why you should tool-up: time spent sharpening your axe is never wasted freeCodeCamp - Medium

Photo by Felix Russell-Saw on Unsplash

There is this old anecdote about two friends who went to the forest to chop up some firewood for their homes. The first friend kept at it without a break for four hours, whereas the other friend would rest for 5 minutes or so every hour. When they were done the first friend was surprised to see that the others woodpile was much larger than his.

Incredulous, he asked, How did you chop more wood than me!? I worked continuously while you took so many breaks.

His friend replied, While resting, I would sharpen my axe, so that I could chop up wood more efficiently the rest of the time.

Thats what I mean by Tool-Up!: equipping yourself with the right tools to make you more productive while ensuring higher quality work output.

What follows is aimed at developers, and uses Java to illustrate examples. But the general advice applies to everybody.

Be smart

The example above is not to meant to send you running to your keyboard to start banging out utility classes/libraries that will supposedly help you out. Not at all! Be smart about what exactly it is that you need. Maximize the Return On your (time) Investment (ROI). An important part of being smart means that you

Prefer pre-built solutions to rolling out your own

For developers, the right tool is often a library that provides you with the required functionality. Whether it is the Optional<T> class of the Guava library (for use in pre-Java 8 code) or its ImmutableList<T> implementation, these tools have been developed to cover many use cases. They also typically have many generations of evolution behind them, and have been thoroughly tested, both by developers and by users. As such they offer the benefits of good design and mature implementations.

Remember: dont re-invent the wheel!

Use your tools consistently

If you use a tool or technique, try to use it consistently throughout your work as much as youre able. This will help reduce the mental load of having to do a context switch between different paradigms and situations.

Often this means refactoring legacy code. In such situations, you should seriously consider scheduling time for it. If time is a limiting factoras it often istry to prioritize high-impact parts of your codebase.

When its time to do it yourself

The stage will likely come (as it almost invariably does) that pre-built solutions are not good enough, or they fail to fill some of the very specific gaps you need filled. Dont feel pressured to create humongous, perfectly-designed, everything-and-the-kitchen-sink librar...


How you can test private methods in Ruby and RSpec freeCodeCamp - Medium

When you declare private methods in Ruby, it normally means you can only access them from within classes and not from outside them. This makes them trickier to test, but there are a couple ways to do it:

  • Test them indirectly
  • Test them directly using #send to call the method

Why use private methods?

Private methods are ones that can normally only be called within the class in which they are defined or in their subclasses, and not outside of them.

They are useful for various reasons. One is to break down a larger public method into smaller methods without exposing them outside of the class. Another is to satisfy the Single Responsibility Principle, where each method focuses on one thing.

These types of methods are declared by using the private keyword.

class Greeter
  def hello(message)
"Hello " + message

If you try to call them outside of the class, Ruby will throw a NoMethodError.

greeter =
=> NoMethodError

However, there are scenarios where you may want to test the private methods (for example, if you are debugging and want to check whether methods produce the intended result).

The code inside private methods is normally a secret outside of their class, but there are several strategies for testing them. Image source:

Option 1: Test private methods indirectly

One approach is to test the public method that calls the private method. This is sometimes seen as a best practice, since the private methods are not designed to be accessible outside of the class, and therefore reflect how the class would be used.

If you had a class that had a combination of public and private methods, such as

class Greeter
  def hello(message)
message = generate_message(string)
puts message
  def generate_message(string)
"Hello " + string

you could call the public method #hello that invokes the private method #generate_message. Then you can test this in your unit te...


Good code vs bad code: why writing good code matters, and how to do it freeCodeCamp - Medium

When writing code in any language, there are good coding practicesand there are really bad ones.

Both may be correct as far as compiling and when theyre run. But bad code can present some problems in development, debugging, and modifying. In the workplace, no matter how well your program runs, someone will have to read and/or alter your code at some point.

They may have to add new features, correct a rare bug, or they might just want to read it to understand how it works. Similarly, you will have to read someone elses code to do the same thing. Everyone will get along a whole lot better if the code is readable and understandable.

To know the importance of good quality code, lets try to understand what a bad quality of code can lead to. Badly written code could lead to financial losses or waste of time needed for further maintenance, enhancements or adjustments to a software.

You write your code once, but then follow it numerous times after. Hence, documenting your code becomes really important, and naming conventions become really important.

Many times I come across my colleagues joking about how they do not remember what code or logic they wrote a few days ago. Now couple it with writing bad code style, and you will take more time to understand what you did. Things start to go haywire when an artist fails to understand their own piece of art 

Key points to keep in mind while writing code

// Comments to the rescue

Most modern languages have declarative documented comments, and their use in conjunction with single and multi-line comments makes code more understandableand hence maintainable.

Good code comments explain why things are done, not what is done. The code itself explains what is done. The need for comments should be minimal.


Good code is properly structured as shown in the figure. It should be obvious for the person trying to understand code where a block of code starts and where it ends, so that following the logic of the code base becomes evident and straight forward.

Indentation : Regular norm 4 space indent


It is annoying when you have a projects code base in front of you, but setup and first execution takes hours to get you rolling. This is where readmes come in handy.

It is always better to have a brief intro to a project before you access the code, and a properly structured Readme does exactly that. A properly structured Readme looks like the below:


You sound insecure how recording yourself can help you ace your next interview freeCodeCamp - Medium

Have you ever heard a recording of your voice? Its weird. Im not saying your voice is weird (well, it could be), but its a weird experience. You have a mental recording of what you think you sound like in your head, but its completely different when you actually hear it played back.

Now, on top of that, have you ever heard your own voice when youre answering interview questions?

Super awkward. At least it was for me.

Right before I applied to my dream company, Dropbox, I was applying to lesser known companies to practice interviewing, but I kept bombing my phone interviews.

My friend, Nick, offered to do a mock interview with me to see if he could help.

His one and only piece of feedback completely changed my interview success rate. He said,

Your answers are fine, but you sound really insecure. Your voice doesnt inspire any confidence youd do the job well.

This blew my mind. I had no idea my voice was an issue or something I should even consider thinking about.

I didnt believe Nick at first, but then we voice recorded another mock interview, it was immediately clear. I sounded extremely insecure and often defensive. I had to fix this.

I started voice recording my practice mock interview sessions and it was a game changer.

You should do this if you havent!

Youll learn a lot just from one voice recording. Youll hear how you structure your answers, if you ramble, if you use filler words or phrases (like, um, you know) too often, and if your voice sounds insecure.

Maybe you dont have a problem with sounding insecure, but there could be something else in your voice or phrasing that distracts from the content of your answers.

After recording myself, here are the three things I noticed in my voice that made me sound insecure and how I went about addressing them.

1. My final sentence of an answer sounded like a question.

Most times when I finished answering a question, my voice raised an octave, like I was asking a question. I would say something like, I oversaw this project and it really helped improve our processes(?)

I was so focused on saying the right things and trying to remember all of the answers I prepared that it was almost as if I was seeking approval for my answers. I would have never noticed this had I not voice recorded myself.

In order to fix this, I focused on making declarative statements and visualized literally putting a period at the end of my spoken sentences.

I oversaw this project and it made our processes two times more efficient (period). Or, My analysis indicated there was a problem with the sig...

IndyWatch Education Feed Archiver

Go Back:30 Days | 7 Days | 2 Days | 1 Day

IndyWatch Education Feed Today.

Go Forward:1 Day | 2 Days | 7 Days | 30 Days

IndyWatch Education Feed was generated at Community Resources IndyWatch.

Resource generated at IndyWatch using aliasfeed and rawdog