

Andreson's profile and their contact details have been verified by our experts
Andreson
- Rate $6
- Response 1h

$6/hr
This teacher is currently unavailable
- Computer programming
- Python
- Artificial Intelligence
- PHP
- Visual basic
Impacting the world with Information And Communication Technology to reduce poverty in Nigeria
- Computer programming
- Python
- Artificial Intelligence
- PHP
- Visual basic
Lesson location
About Andreson
Am Dr.G.K Ojeniyi a Professional Programmer I will like to be teaching Programing and belive is going to be interesting and I promise that learning from us won't be regretful.we are IT expert I will be looking forward to have you
About the lesson
- Primary
- High School
- NCEA Level 1
- +12
levels :
Primary
High School
NCEA Level 1
NCEA Level 2
NCEA Level 3
Adult education
Undergraduate
Masters
Diploma
Doctorate
Beginner
Intermediate
Advanced
Professional
Kids
- English
All languages in which the lesson is available :
English
Learning to code can be an arduous process, and can seem particularly daunting when we are starting off. While I think there is still a lot of programming for me to learn (part of what makes the field so exciting for me), I believe I have nailed down the correct approach for making the most out of the effort I put in. If you are a beginner at programming (or just need a refresher), in this article I am sharing a few nuggets of wisdom which should help you maximize your learning experience. Without further ado, let’s start discussing these learning-frames.
1. Accept that you won’t be good when you start and know that struggling with programming is a prerequisite to mastering it
First, I have a confession to make. When I started programming in 2012, I hated it. Why? Because I wasn’t good at it. I was pretty bad at it, to be honest. When I started off my first class using VBA (Visual Basic for Applications) almost 7 years ago, I also wasn’t used to being worse than most of my classmates at anything. In most of my engineering courses, having a very strong mathematical background from high school gave me an edge. But instead of thinking of the hurdles I faced as surmountable challenges and pushing myself the extra mile, my younger self, for some silly reason, decided that programming was one of those areas I didn’t need to get great at. I did manage to go through my Bachelor’s degree with flying colors. By teaming up with excellent programmers in group projects (thanks, Daniel, if you are reading this), I was able to get by without developing a great understanding of programming fundamentals and issues. But that didn’t work out so great in the long run. If there is one thing that I could change about my career so far, it would be go to back to my undergraduate days at Oklahoma State University and major in Computer Science instead of Mechanical Engineering (ME). Don’t get me wrong; the ME classes were really fun. I genuinely enjoyed learning about most of the topics and solving the problems I was given. However, later in college, once I started looking at job opportunities in ME, I didn’t find them particularly exciting. I also found that in the sub-areas I found most exciting (Automated Control Systems and Mechatronics), I lacked the programming preparation I needed. Anyone with more of a computational background had a significant advantage over me in these fields. Skip ahead a year to when I started my PhD in Biomedical Engineering. I was surrounded by experiments, and inevitably a lot of data. I realized then, as you probably have now if you are reading this blog, that programming is an irreplaceable skill. Learning it opens up countless opportunities in your career, and the lack of understanding it may very well come back to haunt you if you are working in a tech/science-related field. Unfortunately, it took me 3 years since I first started programming to realize that I should have embraced coding’s unique challenges from the get-go instead of shying away from them. I finally learned to not get demotivated by my rookie-level coding skills, and that was when the real learning began. Then, after thousands of hours of practice and countless trials and errors, I came to understand a few more important principles. These are invaluable lessons I wish someone had hammered home to me when I first learned to write code. Good news for you is that I am here to share them right now.
2. Think of learning Programming Languages as a similar process to that of learning Real-world Languages
When we start to learn programming, some of us will be a little better than the other beginners, but no one is good at it from the start. At least not good in comparison to anyone who has diligently put in time to learning programming for a while. This is just like learning a real language. Imagine if someone has only spoken English their whole life, and then started learning Mandarin. It is impossible for them to become fluent in Mandarin in a short time.
When I started, my classmates who were much better than me were (unsurprisingly) mostly people who had done a little bit of programming before. But don’t get discouraged! The good news and the flip side of the coin is, just like learning any real language, there is no way you are going to be bad at it after putting in enough hours. The analogy I like to use here is this: think of someone who moves to a different country and is forced to speak a foreign language on a daily basis. How good they get at this new language will be a factor of how much practice they get and how much they prioritize mastering the colloquial lingo instead of just learning enough to get by. But regardless of their conscious effort level, it’s hard to imagine someone (assuming they have no learning disorders) being forced to speak a foreign language for a while (let’s say 10 years) and not have a functional language skill-set by the end of it. It’s similar with programming. I want to re-emphasize that it is important to seek feedback and constantly improve. Otherwise, just like my analogy, you may end up knowing enough to get by but not enough to do it in the best way. Just as mastering the language of where you live will only make your life easier, mastering “good” programming practices defined by the wider community will save you from wasting time and computational effort.
3. Realize that the internet and available documentation are your best friends
In most of my early undergraduate engineering courses, when I got stuck, the best way forward was usually to get help from the professor/tutor. Naturally, this is the approach I used when I started learning programming. The issue with taking this approach, particularly with programming, is that debugging can take a lot more time than fixing a single step in an engineering/math problem. Most programming scripts build on previous steps as they get bigger and one little bug can send it all astray. The possible number of errors that you can make when starting off programming are countless, and anyone who is helping you has to first understand your problem set-up. Only then can they even start to look for the bug. So if you have 1 tutor for every 15 students (like I did), and they are spending 5 minutes trying to address each student’s problem, you aren’t getting a lot of time/help from them. This is part of the reason why it’s really important to be able to communicate the issues you are facing in writing, and being able to find the answers online or in the programming documentation. With millions of programmers having gone through the same hurdles of learning to code before you, other beginners have certainly been stuck at the same place as you, be it in a slightly different way. If no one has, there are excellent resources out there (think Stack-overflow or Quora) for asking new questions. These sites have millions of active users, many of them being people like me who are eager to look at your questions and come up with answers. Another great aspect of writing your questions down is that it forces you to think deeply about your problem and the process of what you are doing. It’s fairly common to start phrasing a question, and then realizing halfway into your write-up that you have figured out exactly what you were doing wrong. Finding answers online may (or may not) take a little more time than having your script examined by an available tutor, but learning to find answers without a tutor is a key practice we need to develop to speed up our learning. Unless you always have a tutor available to fix your code without any waiting, this will save you a lot of time. And even if you have good teachers, at the end of the day their feedback may not be better than the explanations you find online which have been up-voted by thousands of users.
4. Follow good programming practices
I believe it’s important to re-emphasize this point. Developing programs which follow consistent rules makes it easier for:
a) others to understand what you write, be it for the purpose of helping you fix your code or for reusing it themselves
b) you to follow your own work in the future so you can re-use it or expand on it
If you are new to programming, you will be surprised by how often b) can be an issue if you don’t follow a standard set of rules when writing code. I am not going to go into general guidelines for good programming practices. My recommendation is to start by reading Clean Code by Robert C. Martin. This goes deep into the fundamentals of writing “good code” and I cannot recommend this enough. Beyond that, I believe that the best approach is for you to look up guidelines for the specific programming language you are working with and do a little bit of reading on good practices before you throw yourself into programming.
5. As you learn new tasks, learn to apply them to independent projects
This is where the training wheels come off and the real work begins. I have personally found that educational sources such as Coursera/EdX/name-an-online-course-provider almost always provide step-by-step instructions for solving every problem, detailed video tutorials and clean data (if you are working with data-sets). While this approach gets the student a taste of the methods used, it only teaches students a part of the skill-set needed to perform the same task at a job where such helpful instructions are unlikely to be available. Which is why I believe everyone should be trying out new programming methods on external, independent projects as they learn these methods. I found classes at USC (my graduate school) to be much better at encouraging independent work, but still not to the extent that I preferred. Pursuing such projects where you use the programming skills you learn (and getting them reviewed by experts/online communities) is the best way to learn about your short-comings and to improve in areas that need the most attention. So if your education source isn’t requiring you to work on such projects, you definitely should start setting aside some time for them so you can grasp what you are learning better. The process can actually be very enjoyable. I, for one, have a lot more fun doing such projects than I do watching course lectures.
6. Take on projects on topics you enjoy
The first time I had the chance to pick a programming project was during a course at USC on Probability for Computer Engineers (EE 503). When I heard that we were going to apply our probability knowledge on an project of our choice, I immediately started talking with other students in class to see who was ready to do a group project on NBA player statistics. It was my chance to explore something that I was nerd-ing about on a daily basis from an academic perspective. I ended up putting a lot more effort into the project than I would have on a randomly assigned topic (let’s say statistics on a different sport like cricket). Ultimately, I was unable to prove what I set out to do, that NBA superstar Russel Westbrook’s “stat-padding” was harmful to his team. However I learned new things I wasn’t expecting from this project, like what categories of statistics from a NBA team’s superstar are the best predictors for a team win. All in all, it was a blast and I had a lot of fun while learning to program the methods for my research. I even started seeking advice from other sports-data enthusiasts on Reddit and other social media sites. Since then, I have worked independently on other projects that I find interesting, be it neuroscience concepts or machine learning projects on Bicycle-share systems. The great thing is, given that programming is just a tool, you can use it to mess around with almost any topic you like. If you are thinking, “Wait. I have no interest in data science because I am a web/app-developer”, what’s stopping you from creating an app or a website about your topic of interest? As the over-used but true saying goes, following your passions (be it while applying your new-found skills of programming) will make your work a lot more fun.
7. Find a community of people who also enjoy what you are learning
A great way to ensure you spend more time learning programming is to surround yourselves with others who do the same. A combination of friendly competition and motivation from watching your friends improve can push you to work harder than you would otherwise. If you are fortunate enough like me to live in a big city like Los Angeles, regularly attend meet-ups and network with people who share the same interests. If you are in a remote place, have no fear. Online communities are just as great for meeting fellow learners. A facebook group I once joined for a Udacity Machine Learning class has become an unexpected source for me for news about my interested niches in programming, a chance to look into problems that other learners are facing and last but not least, a quality source of data-science memes. You could also follow articles/authors that interest you in sources like Medium and get in touch with authors that inspire you. There are many many ways of finding a programming community. On a side note, it also never hurts your future employment prospects if your start networking with others in the tech industry.
8. Find opportunities to teach others what you have learned
Teaching something is often the best way to learn it better. I have found this to be true across topics ranging from neuroscience to mathematics to programming. When you are teaching multiple students about a concept, you are forced to think about and answer questions that you would have never come up with by yourself. I have had the privilege of being able to teach programming in R and Matlab as a Teaching Assistant at my university. Interestingly, I have found that working with students who are struggling the most helped me learn to break down the steps of programming and understand programming logic on a deeper level. Even without a specific audience asking questions, I have found that writing online tutorials for guided Machine Learning programming projects (keep an eye out for upcoming posts) helped to me to look at my own projects from a new perspective. Teaching programming is an educational experience for the teacher as well, and I strongly recommend doing it if you have the chance.
Rates
Rate
- $6
Pack prices
- 5h: $30
- 10h: $60
online
- $6/h
Similar Computer programming tutors in Ibadan
ROBIN
Auckland & online
- $44/h
- 1st lesson free
Mandeep Singh
Auckland & online
- $65/h
- 1st lesson free
Dr Pooja
Auckland & online
- $80/h
- 1st lesson free
Britto
Auckland & online
- $80/h
- 1st lesson free
Umair Mateen
Auckland & online
- $40/h
- 1st lesson free
Fortunate
Wellington & online
- $30/h
- 1st lesson free
Aarav
Lower Hutt & online
- $20/h
- 1st lesson free
Gene
Auckland & online
- $55/h
- 1st lesson free
Sujata
Paraparaumu & online
- $25/h
- 1st lesson free
Nav
Auckland & online
- $50/h
- 1st lesson free
Britto Anand
Auckland & online
- $22/h
- 1st lesson free
Monika
Hamilton & online
- $35/h
- 1st lesson free
Jonathan
Christchurch & online
- $40/h
- 1st lesson free
Shyari
Auckland & online
- $17/h
- 1st lesson free
Nishi
Auckland & online
- $42/h
- 1st lesson free
Suhana
Auckland & online
- $45/h
- 1st lesson free
Dineth
Auckland & online
- $27/h
- 1st lesson free
Kylie
Wellington & online
- $50/h
- 1st lesson free
Stephanie
Auckland & online
- $51/h
- 1st lesson free
Northwest Academia
Auckland & online
- $50/h
- 1st lesson free
-
See Computer programming tutors
