matir85 / LearningRecyclerView

Learning recyclerView with many views
0 stars 0 forks source link

Learning to program #3

Open matir85 opened 4 years ago

matir85 commented 4 years ago

Hey. At the beginning I wanted to say that I am not a programmer. I am a policeman in Poland and programming is my passion, hobby and escape from everyday stress.

matir85 commented 4 years ago

I did some tutorials on Android programming. They all focus on the introduction and the first simple layouts. The lines of code contain only a few characters. The problem is that when you want to write something cool, it turns out that the lines of code contain much more characters and are becoming less understood. There is no smooth transition from a very beginner level to a slightly higher level. Just like in your native language, there is also no good training material in my native language. You must rely on content in English. It's true that nowadays, when there is a Google translator, this is not a big problem. The Google tutorial you sent me from is pretty cool. It shows what you need to write to achieve the effect, but does not explain exactly what each line of code means. This is a big problem for me, because copying and displaying lines of code, which should be added without explaining exactly what they are doing and what they are used for, makes it incomprehensible to me. Despite the completed tutorial, I can't implement solutions in my small projects because I don't understand them.

What have you learned from programming that you understand so well? Do you have any advice that you can use while studying?

JeneaVranceanu commented 4 years ago

It is cool that programming is your hobby! It could pay out in the future as such skill will always be required.


First of all, here is the resource where I learned most of my current knowledge about Kotlin language: JetBrains Academy: Kotlin learning map It is the official resource from Kotlin language developers, it is oriented at beginners (no knowledge in any other language required) and soon it will be available only by paid subscription. Register before July 1st and you will be able to learn everything available until 1st January 2021. Otherwise, after July 1st it will be available only by paid subscription.

This resource has "Essentials" category. You can start there and in parallel follow "Kotlin" category. Essentials map Essentials map: Computer programming (I'd say it is the first theme of this course)


A little bit about me: I work as a mobile applications developer since 2015. Started as Android-only developer because it was cheaper to start with. From 2017 began working on iOS mobile applications. With time started to work with backend, worked a little bit with frontend and databases. Some times just to have fun and out of interest tried different areas little by little. But my main focus is on native mobile applications development.

It is absolutely normal situation you described about not understanding everything that is written. There is actually more coding than given in tutorials when it comes to making your own cool application. Why that Google tutorial did not describe everything? Because it expects you to know everything that is not described or some times they point out that you should not pay attention at certain moment to certain things. They have a lot of other tutorials that prepare you to the future ones.

What have you learned from programming that you understand so well?

Good question. And it is somewhat hard to answer. I think what I understand better than anything else is how programs work in general (how do they run on a device) and this allows me to understand what can and cannot be done. Of course, many other things make this understanding easier, like what is abstraction, memory management, what is API and how networks work.

Do you have any advice that you can use while studying?

I think the best advice I can give is - do not try to get a deep understanding of everything you work with. That was my problem when I began programming. For some unexplained reason, I had to dig into each and every function I used. Most of the time leaving it behind or not having clear enough picture because it is hard for a beginner to understand and learn many things at once. In other words - focus only one the topic you learn right now and apply Black Box principle to everything else until it is time to learn something else. In real life, an example of Black Box principle could be an understanding of how to drive a car (you know inputs - pedals, steering wheel, etc, - and outputs - the car accelerates, turns, etc.) but you don't have to know how exactly the car works, how it's engine, transmission and other parts work. It's good to know but not required at the moment to move further.

JeneaVranceanu commented 4 years ago

@matir85 I strongly suggest you diving into Essentials and Kotlin topics first. And later when you will fill yourself comfortable with Kotlin, at least not worrying about it's basics, you can move to these topics:

(first three are more of a theory topics)

  1. Introduction to Android development
  2. Build your first app
  3. Application fundamentals
  4. Welcome to Android basics in Kotlin

There are also free courses by Google: Kotlin Bootcamp for Programmers by Google

One of the reasons why in my early days of learning programming I spent much time with no real result is because of the vast spread of different courses available and I did not know where to start and had no mentor to get advice from. Now I have enough experience to at least get someone going. Start with JetBrains Academy and don't worry about other topics. Get good enough understanding of Kotlin features and syntax before moving anywhere else. Next topics I mentioned expect you to know how to program in Kotlin (or other language) because they introduce you to Android SDK (Software Development Kit) or other features and do not teach you language basics.

Apply ELI5 (Explain Like I'm 5) idea to make sure you understand what you just learned. It helps.

matir85 commented 4 years ago

I have already implemented your advice and have registered with JetBrains Academy. The course is cool. I have programming basics with C ++ and JavaScript so I am learning the tutorial goes quickly and efficiently.

In programming science to date, I didn't have a mntor either, and that wasn't good. So thanks for all your help so far.

JeneaVranceanu commented 4 years ago

Great! I wish you good luck and to have fun along the way of learning.

If you will upload updates on your current application assign me as a reviewer if you want.

Until next time.