Self learn programming

Hi guys, i have this silly question. I am interested in learning programming and making my own software but i already gone through twice different majors in university and not planning to go through uni again.

I saw some people here are making plugins and such, so i was wondering were you learn yourself with internet and all or have studied in programming in uni?

Is learning programming possible from internet or is it going to be really hard?

Yes, it’s very much possible.
You need to read some good introductory teaching websites and study some examples.
As soon as possible, you should take programs/code that has been written by other people and modify it to make it do something slightly different. Then more different, then very different.

The people on this forum wil be very able to give you advice about good places to look for Python coding especially as related to krita plugins.

If there are any other languages you are interested in, they will probably be able to point you in the right direction.

What sort of area of activity are you interested in?

I’d say not really hard provided you start at an easy place and proceed carefully.
It’s the sort of thing you have to want to do because there will be initial confusion with many new (and strange) concepts.

Good Luck :slight_smile:

Im still very new at this as this so i still need a lot of research on how to start. Im looking at khan academy in computer programming part

Maybe that is the start? Anyone who knows better can help recommend me where to start.

I may want to try more on art software and help out in krita or try something related to art but later on i want to make gaming software.

I’m a professional developer and although I have a formal education in the field I started programming much earlier by myself. So it’s pretty much possible to learn it all by yourself.

Before you start you should think about what type of learner you are. I for example are a typical book learner, others learn better from videos and some others don’t care much but need a structured curriculum.

My first programming language I learned was C++ (actually it was BASIC, probably) and although learning a C like language has the advantage of making it easier to switch to other C-likes, as they have the same look and feel, I recommend Python for starters. In your case this has the added bonus that you can later utilize it in Krita.

A lot of languages like C already require pretty advanced concepts just for simple things. Python is more straight forward. When we have interns at work, from 6 and 7 grade of school, I always give them python and usually after their two weeks they can already write simple programs all on their own.

JavaScript is nothing I would recommend to a beginner with zero experience unless you aim to mostly do web development anyway.

There are a lot of good free web tutorials for python online like the classic W3Schools. They even have a basic python interpreter on their website so you can try the exercises right there. W3Scools also has tutorials for other typical web languages.

The Python website has a big list oft tutorials too.

If you’re more of a book person: The O’Reilly book’s are normally pretty good, although dry.

I recommend starting with some free tutorials. When a 7 grader can do it, you can do it too.

(At work I use mostly C# and a bit of JavaScript. I use python for my smaller pet projects at home, and at work for fast prototyping and automating tasks. I tutored students in C++ for some time)

1 Like

Well in my case I learnt most of Python in 2 days over a weekend. The next thing was the details of use case that I had to go through and took me longer to adjust myself to it and modules as I went along. But yeah I focused on making plugins because it was what I needed for krita and maybe blender still.

I like never recommend YouTube in my life but for Python I do. There are long and extensive courses that explain from head to toe. But for another language might not be the case donno.

In case you have questions what stuff do check documentation is always more reliable than from other sources. Also you can ask questions on a site called “stack overflow” but you can also use GitHub for the same thing sorta.

If people say your code is trash just ignore and keep going. Resilience is key.

This is probably the stage you need to find an IDE you like too. You have Atom, Sublime, visual studio code and others. They can also depend on the language you want. I use Atom because it has the best colour scheme and has 2 plugins that I find essential. One that makes a cursor line and another for folders inside the code.

Stack Overflow is probably a terrible place for beginner questions as just learning how to write a valid question can be an endeavor in itself, yet it has the most high quality answers most of the time. Can you ask general questions on GitHub? You can only do this for the repos and their projects, I thought.

Amazing! Is this based on not learning other programming languages?

In fact, I have always hoped that I have the ability to program to realize some wild imagination, but after I estimated the time spent on the project, I withdrew…

Stack overflow is annoying to start with. One of the dudes hated me acctually but I learnt a lot. Is an experience.

GitHub is like with osmosis. You can’t make a question but you can search code that uses the thing you have a question about and that can easily help you stear closer to a correct answer. I stopped using stack for a good while now and only use GitHub now.

I only had some bases on basic that I learnt in engineering. I knew basic logic operations if, for while and little else.

Python is a high level language so it is easy to read and write it is almost spoken language so easy it is. But can be tricky because of it.

I really recommend learning some coding language as it solves some issues always.

Really? 2 days over a weekend for python.

I once tried to watch java script course for my curiosity, after 30 mins I felt my brain raising temperatures, couldn’t take it anymore… :melting_face:

1 Like

Well others said about everything I’ll just add something.
University is not going to teach your programming, it teaches you concepts but the programming is left to you to learn. Programming is like studying languages or art, it’s mostly about experience, it’s a practical skill. Don’t worry learning it on your own, all programmers do that ;).

Languages in general I’d recommend as others did some scripting languages, python, javascript, c#.
Since programming is mostly about concepts what you learn in one language you can usually easily use in others, some keywords might change, you might need to add or remove some braces but that’s about it so feel free to go for it.

When it comes to beginning, I’d not advice to start by tinkering with someone elses code, get some basic tutorial/courses online whichever works better for you and start by writting code, that’s the best you can do.
Simple programs to solidify what you learn during these courses, over the time you can add more features or work on new ones and so on. Don’t worry to mess up, everytime you learn something new it’s possible you will be changing how you write/approach your next program, that’s normal so don’t get stuck in one way or one program forever. Just go on, if your previous program works you are ok, move on.

Don’t be afraid of googling, programming is largely googling, going through manuals/documentation and learning so just keep going.

There are some tutorials on youtube which are like, what should beginner programmer build or so, check these at some point if you can’t come up with a some program on your own, it doesn’t have to be complex. Have you heard of the famous calculator, half of the people here probably wrote one early on xD.

You don’t need to go through uni to learn programming, actually, going to uni for programming is borderline useless other than getting connections. As mentioned, uni mostly gets you started with the basic concepts and workflows. Otherwise, the space has evolved so much that uni there is no way uni can keep up with it

That said, your question about if it is hard is like asking if it is hard to make things out of wood. It can b really easy, or really hard depending on what you are trying to do.

How to start as mentioned depends on what you plan to do and what kind of learner you are. If you want to make python plugins in Krita, that is easy. Python is a very verbose language that makes it easy to learn language. It is also a very popular language so learning python is considered one of the starter languages to learn. If you want to contribute to Krita source code itself, that would be C++, it is much harder than python. C++ can also be used to make gaming software due to its low level.

As for your link of learning javascript, javascript is a bit harder than python(but way easier than C++). That said, I’d probably put javascript as one of the languages anyone should know. Javascript falls into the category of jack of all trades, master of none. It started out with just used for front end website programming. But now it could be used for almost anything.

The thing you should know about gaming programming in general is this, most games these days simply use gaming engines. Ones like Unreal Engine, Unity and etc. Some of them even take javascript to do basic stuff.

Overall, I think you should start with python. Then decide from there the path you want to go. The reason is simple, what motivates us is generally what we see results from. With Python, you can already start making basic plugins for Krita by next week.

As for learning method, there are all kinds of learners, some learn through books, some learn through internet tutorials, some like to learn by example, others learn through trial and error (modifying others code or just using the function reference)

The big positive thing you have these days is autocomplete. It won’t write code for you, but it does a lot of hand holding for you to help you get what you are looking for. You can also uses IDEs to track things down easier

Totally normal for JS.

1 Like

You may not believe it. I spent an afternoon figuring out why my C + + “Hello world” didn’t work properly :sweat_smile:

2 Likes

Sometimes true. When we get interns fresh from university I sometimes don’t even know what tasks to give them because they could tell me all the data structures and sorting algorithms they know by heart but have not much actual coding experience to actually work on a feature or something.

Thank you for the recommendations website and resources. Im usually a book person too but depends on the book, i like more step to step and structured way. So if the book is not step by step from basic to advanced and just immediately a topic then i prefer other things that is structured.

Thank you all for the support and the advice. Yeah, Im going to start with python like you guys suggested and then i will see where i will go c++ or java script first.

Yea im tired of uni, wasting years of studying, forget all what i studied after test and not using it after finish haha… now i tried to learn everything what im interested in by myself and internet with self-motivation is the best way for me.

1 Like

That depends on what you want to do with it later. JS won’t help you much in krita while it will help you out in lots of other places, c++ is used to make krita so that’s where you can certainly use it plus plenty of other places.

Well, the most important part about university is the diploma, connections with other people/companies. The studying isn’t the priority, that’s a byproduct so if you get tired because of that it might be worth changing your view and getting through a uni to obtain these as your focus. :slight_smile:

I can relate with that so much.