Want to learn to program?

avatar
(Edited)

image.png

I've have long thought everyone should learn to program, even if you have no intention of ever being a programmer. Programming is a unique learning experience on problem solving. A skill that schools don't teach or help develop.

I was hanging out on MSP Waves listening to @crimsonclad talk to a few users and one of them expressed interest in learning to program. He asked for some advice and which language would be best.

What language is best

You have four options for programming languages on Hive. The most obvious choice is JavaScript or Python as that is what most of us use. Both of these languages are fantastic choices and you can't go wrong with either, I prefer Python as the current Hive libraries are not maintained well and the Beem library is by far the best one available.

Either choice is good, and I would recommend JavaScript if you want to do more front end development as you will need to learn it if you do. Both are easy to learn but take time to become efficient with them.

I did mention there were four options, the third is Ruby. While Ruby is extremely popular in the real world, on Hive there is only one person I know that uses it, @inertia. He has created some really cool tools using it which he has offered almost all of them for free somewhere on GitHub.

The final option is C++, it is the most difficult option and will require the largest learning curve, most projects on Hive do not use C++ but if you want to work on actual blockchain code, you will need to learn C++. Most developers here are app developers and are building apps on top of the blockchain (the 2nd layer you keep hearing about) and C++ is not the obvious choice for these projects.

While there are many other languages like C# and Go, these are not as popular on Hive as there are no libraries available for Hive. There are a few projects that use Go and it is a good option if you need more performance than Python & JavaScript can offer.


How do I learn these languages?

@crimsonclad mentioned a resource I haven't heard before and I took a quick look and I really like it. It is called Code Combat and it turns learning into an RPG game.

I only looked at it briefly, but I was really impressed with it, I definitely will be recommending this to people going forward, especially younger adults. I strongly believe all parents should try to introduce their kids to programming early in their development and tools like this are fantastic.

A few other options I generally recommend to people are:

Codecademy
Udemy
Khan Academy

Khan Academy is completely free, the rest have some free courses and a lot of paid courses.

One thing I do recommend for new developers is challenge systems, there are a lot of good ones out there that give you progressively more difficult problems to solve in your chosen language, you can then compare your results to the suggested solution and even get feedback from your peers. These are fantastic ways to challenge yourself and get better.

A few popular ones I highly recommend are:

Code Wars
Project Euler
Exercism

These are all free and I highly recommend getting started with them immediately upon getting a decent understanding of the basics. Each challenge will exercise your new found knowledge and help develop it further. I really recommend checking out Code Wars, it is really polished, Exercism is really good for git workflow.

The most important resource I can suggest is find a project you want to build and start on it. Even if you have to break it down to tiny pieces to accomplish it. You will learn more building something than you will ever from just doing tutorials. You will run into endless problems that are not in any course and have to work to solve them like any other developer does. Only then will you truly become capable.

I also recommend getting the book "Think Like a Programmer" by V. Anton Spraul. It is a fantastic resource for learning how to break larger problems into smaller ones.


Securely chat with me on Keybase

Why you should vote me as witness



0
0
0.000
44 comments
avatar

What would be the best language to use if you plan to build a sidechain or subchain?

0
0
0.000
avatar

I believe Hive Engine is JavaScript, not the most performance for such a thing, but doable. C++ is usually the language of choice when doing anything chain level.

0
0
0.000
avatar

👍👍
This is going to help a lot of curious people.

0
0
0.000
avatar

Yes I'm trying to learn programming for my music and use blockchain to the best of its ability with it

0
0
0.000
avatar

I tried to use media chain and its obvious idk what I'm doing

0
0
0.000
avatar

I see potential in hive becoming the new stackoverflow. It would be nice to reward people that helps solving common problems.

0
0
0.000
avatar

Don't forget to use a VPN when browsing online.

0
0
0.000
avatar
avatar

So, here is the thing. I 100% agree, but a lot of people will read this as "coding". It may be pedantic, but I consider programming as essential problem solving and coding as the "coal mining of the internet".

Basically, programming is design and coding is building it.

Coding is essential to understanding how to program, but I think in the future most of the actual coding will be complete by AI, but the design aspect will be farther off, at least a generation.

Kids need to learn how to solve problems, and learning to program is a great tool for that.

0
0
0.000
avatar

Worth re-posting so I can go back to this post.
So much nugget for my son.

0
0
0.000
avatar

Thank you Marky, I started my coding career Q2 of last year but I needed to stop at a point because I was going to Law School (so devastating, I think I miss so much when I left 🙃).

I think this your post is timeous as I am considering going back to programming. Meanwhile, I will give a shot at the JavaScript. Although, I started with Python. But with these resources I am more than okay to go ahead.

I’m grateful sir.

0
0
0.000
avatar

Definitely check out Code Wars, really love it for creating a daily challenge.

0
0
0.000
avatar

I will do that. Thank you 😊
I’m keeping your post in my archive for reference purposes.

0
0
0.000
avatar

Why you think C++ is better then python for the second layer, at the moment i learn pyhton and python Django , i hope it is the right choice
!invest_vote

0
0
0.000
avatar

I started my programming journey 3months ago with c# where I learnt the basics. Moved over to free code camp to follow their well-detailed course. I recently bought a course on javascript recently. Hoping to land my first gig by the beginning of next year. It has been a fun experience for me.

Posted using Dapplr

0
0
0.000
avatar

Yeah I've begun learning python from scratch. slow goings, but ill check out codecombat as you posted.
Honestly there's so many free resources out there. I've been reading this book, which is free and helpful. The hardest part so far has been putting the time into the learning process, not at all finding materials!

0
0
0.000
avatar

Bookmarking this post. Have been thinking a lot about it lately.

Thank you :)

0
0
0.000
avatar

Wow!.. thank you very much, so much cook information!...reblogged...follow you... enjoy ....

0
0
0.000
avatar

Thanks for Code Combat. I just set up my teacher account since I am homeschooling. This will help a lot.

0
0
0.000
avatar

Anyone who wanna learn to code Python on the go via mobile.
Check out Python they have a lifetime sale where you save 95%
Looks like this in the Play Store

img_0.3277525398806273.jpg

I paid 8.7$ dollars for this Lifetime oO

Just wanted to let you guys know.
I gain nothing from this

0
0
0.000
avatar

I'd find it hard to learn and code on a phone but I know some do.

0
0
0.000
avatar

Ye well, I think its a good tool to keep one practicing on the go :D It was just at a ridiculous price!
I would also rather code on the computer :D

0
0
0.000
avatar
(Edited)

Have a look at Anki as well, you can download premade Python decks.

Spaced Repetition is one of the most powerful learning techniques ever discovered.

https://hive.blog/workflowseries/@themarkymark/workflow-series-increase-retention-and-speed-up-learning

0
0
0.000
avatar

Dont know what Python decks are, but nice thanks!

0
0
0.000
avatar

A deck with Anki is like a set of flash cards.

The idea with spaced repetition is you go through the flash cards, and reschedule them for later depending on how well you feel you know it. If you feel you know something really well, it will schedule it days or weeks away, if you don't know something, you will start seeing it more often. There app automatically schedules based on how you score (1-5 based on how much you know it) each card after you answer it.

0
0
0.000
avatar

Uhh, sounds like an amazing app!

I will start with learning the basis and then download Anki :D

0
0
0.000
avatar

It's funny because I was just searching for the best sites to learn to code. There are so many out there it's easy to get sold on something not quality. I really like the recommendation on challenges. I started doing some, is the idea that they're similar to excel formulas? That's how I've been trying to solve for the answers

0
0
0.000
avatar

The idea is you get a real world bite sized problem to solve.

As I said in the post, my biggest suggestion is to build something on your own, this is where you will grow the most. These challenges are like building something on your own without having to come up with an idea. They are also single problems where many projects are made up of many problems.

Another great thing about these code wars type of sites is you can see how other people solved the problem and frequently learn to be a lot better.

I highly recommend code wars over all the rest. It is really well done and supports a lot of languages. Has built in editor and test runners.

I recommend anyone learning to grow to do at least one challenge a day. Some may only take you 1-2 minutes some may take an hour or more. They are all small problems but sometimes you just don’t know where to start.

0
0
0.000
avatar

Well, for now, I can't even read or listen about coding daily, but I have that interest in the back of my mind, nibbling at stale cheese...

0
0
0.000
avatar

When I was a student, I want to be a programmer too, but I think i have to learn hard about the language of programmer because i am not familiar with them. Now i am a user and i believe in you and our friends will support us with the programs you create. Thanks for this article mister.

0
0
0.000
avatar

Nice guide for those that want to start developing on the Hive blockchain. I'd like a GO library, maybe I can start working on porting some of the more popular python projects to go. I don't agree that everyone needs to learn how to code. It's time consuming and not for everyone. If you don't like programming I'd definitely recommend investing your time in something that makes you happy. Not to be the Grinch, but people are different and not all of us are suited for this.

0
0
0.000
avatar

Many years ago I programmed at Oracle to develop client-server management applications. Perhaps, I tried to convince my son to learn some of the languages you suggest here.

Thank you for the recommendations.

0
0
0.000
avatar

Literally just started my free trial on codeacademy 3 days ago and have really been enjoying it. I'm on the web development track now and that includes JS and some Python. I'll checkout code combat for sure, sounds cool.

0
0
0.000
avatar

I'm thinking about learning Python. For now, I'm learning C++.

0
0
0.000
avatar

Excelente espero ir aprendiendo
Muy buenas las recomendaciones y para alguien que se inicia en esto, que es mi caso la información es muy útil.

0
0
0.000
avatar

Brilliant. Thank you. I had have passed this on! It's a great idea.

However, it does requires logic and in my experience, too few people posses it.

Thanks again!

! tip

0
0
0.000
avatar

Excellent post @themarkymark

I've have long thought everyone should learn to program, even if you have no intention of ever being a programmer.

I am now considering learning how to program, yet had no interest in doing that until reading your post. Thank you.

The most important resource I can suggest is find a project you want to build and start on it.

A project i would want to build is a DApp on Hive for The Matrix-8 Solution.
Would this be too ambitious, as it's a project to potentially connect everyone in the world, a multi-level, real time governance system to enable Pure Democracy?

There are a few projects that use Go and it is a good option if you need more performance than Python & JavaScript can offer.

So with a potential of let's say 5 billion people connecting to the DApp at the same time, bearing in mind i'm very unlikely to complete the Dapp myself and would likely hand it over to someone else (or a team) to complete, do you think i would be better learning Go rather than Python?

0
0
0.000