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:
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.
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
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
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.
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...
Also see: How to Pick a Programming Language
What would be the best language to use if you plan to build a sidechain or subchain?
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.
👍👍
This is going to help a lot of curious people.
Yes I'm trying to learn programming for my music and use blockchain to the best of its ability with it
I tried to use media chain and its obvious idk what I'm doing
https://emkc.org/challenges is also a good place to practice solving challenges in various languages.
Don't forget to use a VPN when browsing online.
Worth re-posting so I can go back to this post.
So much nugget for my son.
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.
Definitely check out Code Wars, really love it for creating a daily challenge.
I will do that. Thank you 😊
I’m keeping your post in my archive for reference purposes.
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
For second layer I'd go Python or JavaScript.
@cervisia denkt du hast ein Vote durch @investinthefutur verdient!
@cervisia thinks you have earned a vote of @investinthefutur !
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!
Bookmarking this post. Have been thinking a lot about it lately.
Thank you :)
cool ... thx for the recommendations
I have tried khan academy. it's amazing course.
Wow!.. thank you very much, so much cook information!...reblogged...follow you... enjoy ....
Thanks for Code Combat. I just set up my teacher account since I am homeschooling. This will help a lot.
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
I paid 8.7$ dollars for this Lifetime oO
Just wanted to let you guys know.
I gain nothing from this
I'd find it hard to learn and code on a phone but I know some do.
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
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
Dont know what Python decks are, but nice thanks!
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.
Uhh, sounds like an amazing app!
I will start with learning the basis and then download Anki :D
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.
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.
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.
Upvoted by GITPLAIT!
We have a curation trial on Hive.vote. you can earn a passive income by delegating to @gitplait
We share 80 % of the curation rewards with the delegators.
To delegate, use the links or adjust 10HIVE, 20HIVE, 50HIVE, 100HIVE, 200HIVE, 500HIVE, 1,000HIVE, 10,000HIVE, 100,000HIVE
Join the Community and chat with us on Discord let’s solve problems & build together.
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.
I'm thinking about learning Python. For now, I'm learning C++.
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.
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
Excellent post @themarkymark
I am now considering learning how to program, yet had no interest in doing that until reading your post. Thank you.
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?
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?
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.