Saturday, 26 May 2018

On Learning Programming

A university graduate asked me the following question, so I thought I would publish what comes to my mind here for the benefit of others.

What are some good tips on learning a programming language on your own?

  • Programming is the skill, language is the tool. Tools are chosen based on parameters (cost, man power, features, scaling, etc.). Bottom line, learn to code firstly. Pay attention to core concepts that you can take to any programming language. Learn to learn. Then learn about the languages that you need to use.
  • Understand your learning strengths and weaknesses. Poor memory, can't concentrate for long hours, work better in the night, music on in the background, things that apply to your learning in general.
  • Pay attention to official language documentation and examples.
  • Choose a good IDE (or text editor) (syntax highlighting, debugging, extensions, etc.)
  • Google is your friend. In addition to looking to Google for help, also give back. Write a blog post about something you figured out that someone else can benefit form. Publish the list of resources you came across.
  • Related to the above. Make notes. Notes should be categorized and searchable using something like Google Keep maybe.
  • Have the right expectations. Programming can be hard and tricky and frustrating. Programming requires patience. Take a break when you need to. Let your mind process it overnight. My university professor used to say, "go home and think about it." Don't expect everything to make sense immediately.
  • Look for resources like books, tutorials, blogs, youtubes, forums, groups, online courses, etc.)
  • Build something fun and that is relevant to you. Passion can be the fuel to keep you going. Having something tangible and working for you can boost your confidence and make you appreciate the usefulness of the skill you are trying to acquire.
  • Good programmers understand key concepts like optimization, code reuse, refactoring, unit testing, readability, architecture choice, good comments, source control, coding standards, etc.
  • Came across this video last year and I recommend you watch it too - The Right Way to Learn Code | Brian Underwood, Max Ptacek & Ben Makarechian | TEDxYouth@SHC
  • A good book to check out is How to Become a Web Developer: The Career Changer's Guide
  • A good account to follow on social media is @CodeNewbies
  • Finally this - Practice, practice, practice.
Share your tips and experience with us in the comments below.

Tuesday, 1 May 2018

Ask A Techie 20 Questions – Keenan Chatar – Student Engineer


How would you define a techie?

Someone who is adept with electronic devices and up to date with the current sphere of technology. Someone who knows more than just how to use technology, but understand show it works, even capable of repairing it.

Tell us about yourself (short bio)?

I am a student of the University of the West Indies and currently reading for my Master of Science in Electrical and Computer Engineering. I am also conducting research and development in association with UWI for a software project to assist the development of the Trinidad Cocoa Industry.

Tell us about your project to fund your NASA internship?

To fund this internship, I have reached out to various organizations seeking corporate sponsorship. I will also be putting as much of my own personal funds as I can muster to participate in the internship. And finally, I have started a GoFundMe page: which receives generous donations from friends and family.

Why is the word Aeronautics in the NASA name?

Aeronautics is the study of air-navigation which is truly essential to an organization that deals with rocket flight. Space exploration and aeronautical vehicles (e.g. rockets, drones and aircrafts) are in my mind the staple of what NASA stands for.

Is this too general?

I think it is apt as Aeronautics is fundamental to what NASA does, even if it may be slightly generalized. Though it is understandable why it may be considered an "umbrella" term. However, it is still a core dependency of the organization, thus it is suitable.

Would you change the NASA acronym to something else?

Changing the acronym would be an unfavourable idea even if a more appropriate name is available as the acronym "NASA" is almost synonymous with space exploration and aeronautical vehicles. But if I had to change it to something more accurate then maybe National Aeronautics and Space Research Administration (NASRA)? The organization is heavily involved in research in a variety of fields thus it may be suitable to include it in the name.

How can Trinidad contribute to space exploration?

Trinidad can contribute to space exploration by producing competent and capable engineers willing to push the boundaries of human curiosity. These engineers could pioneer groups which would be focused on space related research to expand the existing body of knowledge in Trinidad. The place to begin is in research, maybe in association with existing space agencies?

What technical websites do you follow?

I follow National Geographic avidly. I have always been interested in Nat Geo ever since I was a child and my passion carried through age. I also follow Business Insider and Tech Radar to keep up-to-date with the tech-world. Does Reddit count?

How do you imagine the world would be in 50 years?

Hopefully not run by AI. If it isn’t, I’d HOPE it’ll be one of the most beautiful times for humanity. Illnesses being cured within days, no need for war as harnessing energy or creating materials needed should be child’s play. We may have even colonised the solar system by then. The future is bright.

If you were an astronaut what song would you listen to as you left Earth's atmosphere?

Elton John – Rocket Man

What is "On-Demand Manufacturing in Space"?

The project I will be working on at NASA is titled "On-Demand Manufacturing in Space". Sending supplies and spare parts to ISS involves huge logistics and delays in mission completion. There have been recent efforts to mitigate this issue with on-demand manufacturing in space. NASA has been developing printing electronics capabilities that includes printing sensors, supercapacitors, memory devices and others. The project involves material/printing ink preparation, printing devices, testing devices and comparing with the state-of-the-art.

What technology stack would you use to develop a system that keeps track of starting, ending, cost, etc. for passengers in a maxi taxi?

LAMP Stack. User front-end in PHP/CSS, maybe display a map of their start/end route on a dashboard. Start location, end location and overall cost stored in SQL database.

The best advice you have received?

Do; or Do Not; there is no try. – Yoda

Your thoughts on "extant conditions" (taken from here)

In the context of its use, I’d say these old but existing conditions are simply another challenge to be faced by the young engineers. Unfortunate yes, but it is the nature of engineers to work around a problem to the solution.

Tell us a Computer Engineering joke?

Three engineers are riding in a car. One is a mechanical engineer, one is an electrical engineer, and one is a computer engineer. The car breaks down and coasts to the side of the road.

"Hang on" says the mechanical engineer. "The problem is probably the engine, let me have a look at it and I'll have us on the road again in no time."

"Wait," says the electrical engineer. "The way it just stopped like that, I think it's the electrical system. Let me have a look and I'll get us going again in a minute or two."

"Hold on," says the computer engineer. "Why don't we all just get out of the car and get in again, and then see if it starts?"

What is the most difficult part of Computer Engineering for you?

Managing my time wisely. Especially during a degree in which you have many things to juggle. The workload was unexpectedly daunting; however, it was enlightening as to just how much I can push myself and break through walls.

Forest is to tree as tree is to?

Leaf.

What do you do for fun?

I enjoy outdoor activities such as running, swimming and surfing. I always try every sport I can get my hands on as I only have my youth for so long. I also enjoy chess, reading and playing games on console or PC. Fortnite is currently my game of choice.

Android or iOS?

Android. Simply better. Not the best for money-making, but better for developers and the future of technology, Open-Source.

What question would you ask the next techie?

What’s the most frustrating thing you’ve ever had to deal with?