Jump to content

Where Can I Learn To Program For Free!? What is best lang too?

WolfLoverPro

Was going to learn python as my first language but im not sure where to learn it ? Codeacademy i dont get why people are saying its free as well, i try goto next tutorial its not free you have to pay for bloody premium lol

 

the only free one i have seen is sololearn is that what i should use??

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, WolfLoverPro said:

Was going to learn python as my first language but im not sure where to learn it ? Codeacademy i dont get why people are saying its free as well, i try goto next tutorial its not free you have to pay for bloody premium lol

 

the only free one i have seen is sololearn is that what i should use??

Hey i'm learning a few languages in UDEMY for very little.

"Once there was an explosion, a bang that gave birth to time and space. Once there was an explosion, a bang that set a planet spinning in that space. Once there was an explosion, a bang that gave rise to life as we know it... And then came the next explosion. An explosion that will be our last"

 

"... To see the world in a grain of sand. Heaven in a wild flower

Hold infinite in the palm of your hand.  And eternity in an hour ..."

 

PC: 1

CPU: AMD Ryzen 9 3900X 4.3GHz 1.3875v Motherboard: AsRock X470 Taichi (BIOS: Agesa 1.0.0.3 ABB) RAM: 4x8GB(32) 3200MHzCL16 Hyper X GPU: GTX 980 Ti Waterforce Xtreme Core Clock: 1595MHz Memory Clock: 8000MHz Storage: SAMSUNG EVO 860 2TB(OS) / SAMSUNG EVO 860 1TB(Backup) Cooler: NZXT Hydro X72 360mm Case: NZXT Phantom 820 PSU: Corsair TX-750w Display Monitor: Monitor AOC AG251FG 240Hz G-Sync 1080p Headset: Headset LogiTech G633 OS: Windows 10 Pro 64-bit (Version: 1909 / OS Build: )

NOTEBOOK:

Model: Acer Aspire 5516 CPU: AMD TF-20 1.6GHz(1C/1T) GPU: ATI Radeon X1200(256MB) RAM: 4GB(2x2GB) 666MHz HD: SSD Sandisk PLUS 240GB OS: Windows 7 Ultimate SP1 x64

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Juniiii said:

Learn html first, then proceed with others. 

well python is no 2 in the list though? lol

Link to comment
Share on other sites

Link to post
Share on other sites

I started with C#, was recommended Python as my first language. Java is what I got to do in school. Code academy was free when I used it but they have probably gone to a paid model now if you seem to have to pay. 

I spent $2500 on building my PC and all i do with it is play no games atm & watch anime at 1080p(finally) watch YT and write essays...  nothing, it just sits there collecting dust...

Builds:

The Toaster Project! Northern Bee!

 

The original LAN PC build log! (Old, dead and replaced by The Toaster Project & 5.0)

Spoiler

"Here is some advice that might have gotten lost somewhere along the way in your life. 

 

#1. Treat others as you would like to be treated.

#2. It's best to keep your mouth shut; and appear to be stupid, rather than open it and remove all doubt.

#3. There is nothing "wrong" with being wrong. Learning from a mistake can be more valuable than not making one in the first place.

 

Follow these simple rules in life, and I promise you, things magically get easier. " - MageTank 31-10-2016

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

First i would pick a language that you want to learn based on what you want to do -> the info graphic below is quite fun :) (just as a tid bit)

 

As for resources, im not aware of any free ones, but Udemy has quite a lot of discount deals regularly so might be good to look at.

 

1*OF594B5qtCJR9MFSRTI-5g.png

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, factorialandha said:

1*OF594B5qtCJR9MFSRTI-5g.png

lmfao i went with i just want money and it took me to java..................... maybe its bad but let me be honest.. i kind of do want it for the money lmfao but ive always been interested in computer jobs so idk

Link to comment
Share on other sites

Link to post
Share on other sites

FreeCodeCamp is a very good one, but it is much more involved than many other options. https://learnxinyminutes.com/ is a good tool to really quickly get down the basics of a language, although it's mostly a reference tool for people who already know some programming and are trying to start with a new language.

 

As for which language to learn it does not matter. Any programming language will teach you the basics of programming, I started with C, I have friends that started with Python, JavaScript, PHP, BASIC, even Scratch, and all are great programmers now. Pick the language that seems most interesting to you.

¯\_(ツ)_/¯

 

 

Desktop:

Intel Core i7-11700K | Noctua NH-D15S chromax.black | ASUS ROG Strix Z590-E Gaming WiFi  | 32 GB G.SKILL TridentZ 3200 MHz | ASUS TUF Gaming RTX 3080 | 1TB Samsung 980 Pro M.2 PCIe 4.0 SSD | 2TB WD Blue M.2 SATA SSD | Seasonic Focus GX-850 Fractal Design Meshify C Windows 10 Pro

 

Laptop:

HP Omen 15 | AMD Ryzen 7 5800H | 16 GB 3200 MHz | Nvidia RTX 3060 | 1 TB WD Black PCIe 3.0 SSD | 512 GB Micron PCIe 3.0 SSD | Windows 11

Link to comment
Share on other sites

Link to post
Share on other sites

You can learn from YouTube for free. 

 

As for what's the best programming language....

HTML is not a language neither is CSS. Those are markups and can't really tell computer to do stuff. They are for your browser to render web page content. Learning them will not teach the basics essential to all programming lanaguges like variable declarations, loops, functions, recursions, OOP, etc. 

 

Stick with Python. I think you just want a language to play with. If so, python has all sorts of interesting modules for doing that. 

 

Although if you wanna make a career out of it, java is the highest in demand langauge in the software industry by far so be sure to pick up java at some point. 

 

2018-developer-job-listings-for-most-pop

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

12 hours ago, WolfLoverPro said:

 

Wow... that kinda describes my path, except im learning 3D graphics programming and multivariate calculus now too. except i literally did the map wrong... lol

 

1. doesnt matter i just want the money

2. get a job

3. im interested & its fun

4. just want to get started

5. the really hard way

Result: c++ 

 

but i started with c++ then c & java, then python, then openGL & glsl. 

 

i would %100 percent recommend the hard way. ive been going at it for 4.5 ish months now. I constantly want to give up, it constantly feels too hard, it constantly feels like ill never be good enough, but i do it anyways. It just really shows me my power to choose to have my brain and body do whatever i decide it will do. My feelings are irrational, and i can handle anything in tech. plus its kinda fun.

 

plus, if you dont have the motivation to do things the hard way and solve problems, apparently you dont have the attitude to be a software engineer. ( atleast from what ive been told )

 

 

@wasab I dont understand why java is so popular. The only thing that felt streamlined and easy with java, was threading. everything else is a high level memorization game, and it just feels like a prison. Generics in java are kind of nice. I'm on the fence about them.

Link to comment
Share on other sites

Link to post
Share on other sites

34 minutes ago, Kamjam66xx said:

 

 

 

@wasab I dont understand why java is so popular. The only thing that felt streamlined and easy with java, was threading. everything else is a high level memorization game, and it just feels like a prison. Generics in java are kind of nice. I'm on the fence about them.

Java isn't the most popular but all the fortune 500 companies as well as countless others use Java for back end which is why it is so widely used in the industry. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

14 hours ago, WolfLoverPro said:

Was going to learn python as my first language

Don't. Python has a lot of syntax quirks, and by "a lot" I mean "the whole Python language is a syntax quirk".

Learn Lisp (Racket or Common Lisp), Pascal/Delphi, Perl or (if you're like me) C instead. :)

 

Unless job security is what matters most to you (see the graph above) - in this case you might want to learn COBOL, COBOL developers have a lifetime job security these days. But COBOL is an acquired taste.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

I personally recommend sololearn, for the likes of C++ it takes you through the basics (variable declaration, if statements etc) first and builds you up to a fairly high stage(Polymorphism , error handling etc), its free,on mobile as well and it has courses on the most popular languages.

It's a good star.

Link to comment
Share on other sites

Link to post
Share on other sites

I don’t recommend Java as a 1st language to learn. It can be very complex for a beginner.

 

what you should look at is C (the starting language to all other C’s and the base for a lot of other languages or .Net Visual Basic to get an easy understanding of object oriented programming and methods.

 

I actually do more coding in Visual Basic then any other languages I learned because it saves me time and I can get the results I want out of it.

Link to comment
Share on other sites

Link to post
Share on other sites

10 hours ago, Elochai said:

I don’t recommend Java as a 1st language to learn. It can be very complex for a beginner.

 

what you should look at is C (the starting language to all other C’s and the base for a lot of other languages or .Net Visual Basic to get an easy understanding of object oriented programming and methods.

 

I actually do more coding in Visual Basic then any other languages I learned because it saves me time and I can get the results I want out of it.

how can c be easier when you need to do memory management? 

Also, it is not object-oriented, not without some clever hacks anyway. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, wasab said:

how can c be easier when you need to do memory management? 

Also, it is not object-oriented, not without some clever hacks anyway. 

I didn’t mean C for object-oriented programming although there is Objective-C (but that’s another story and again should learn C before moving up), I meant learning Visual Basic .Net and that it’s easy to learn for starting out and getting a feel for object-oriented programming. What I meant with C was that it should be looked at as well. I think anyone doing any C language (C#, C++) should know C first. It isn’t that hard to pick up and learn. But if he wants a starting point to object-oriented programming then yes I recommend Visual Basic .Net, it’s easy and a powerful language.

Link to comment
Share on other sites

Link to post
Share on other sites

43 minutes ago, Elochai said:

I didn’t mean C for object-oriented programming although there is Objective-C (but that’s another story and again should learn C before moving up), I meant learning Visual Basic .Net and that it’s easy to learn for starting out and getting a feel for object-oriented programming. What I meant with C was that it should be looked at as well. I think anyone doing any C language (C#, C++) should know C first. It isn’t that hard to pick up and learn. But if he wants a starting point to object-oriented programming then yes I recommend Visual Basic .Net, it’s easy and a powerful language.

I started a few hours into python wait should I learn c then

Link to comment
Share on other sites

Link to post
Share on other sites

52 minutes ago, WolfLoverPro said:

I started a few hours into python wait should I learn c then

I can’t speak for python. I haven’t learned it, I only merely looked at it. C isn’t to hard to learn and I recommend it if you want to get into other C languages. 1st language I learned in college was Visual Basic .Net when I did Programmer Analyst (Networking) because it was less discouraging for starting off. I found it more forgiving on errors with much more help to where you went wrong then Java, and the fact you can design your application GUI within a GUI added ease to design and figuring out where you want to go next with the application because you could see it every step of the way. It been a while since I programmed in Java, but when I did Java, I found I spent a lot of time on just coding the GUI and running the application to ensure it was turning out the way I wanted; compared to designing the GUI in a few mins in Visual Basic .Net and getting right into programming my application to do what I needed it to do.

 

If you started Python and it going well for you so far, then stick with it, should never give up or drop a language once you started to learn it as you may not want to learn it afterwards / giving up on it. I have heard it easy to learn but I can’t vouch for it as I haven’t learned it myself yet (it on my list of Udemy courses). I simply was giving my opinion on languages I found to be good to learn for beginners based on my experience. I 100% recommend Visual Basic .Net for beginners though.

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, Elochai said:

I didn’t mean C for object-oriented programming although there is Objective-C (but that’s another story and again should learn C before moving up), I meant learning Visual Basic .Net and that it’s easy to learn for starting out and getting a feel for object-oriented programming. What I meant with C was that it should be looked at as well. I think anyone doing any C language (C#, C++) should know C first. It isn’t that hard to pick up and learn. But if he wants a starting point to object-oriented programming then yes I recommend Visual Basic .Net, it’s easy and a powerful language.

I am pretty sure any programmer who's worth their salt ought to know OOP inside and out. Might as well as do it in their first language. Besides, if op doesn't learn oop in his first language, he might picked up some real bad programming practices down the road. I've seen people who write spaghetti codes. Why? They never learn to abstract and modularized their code with polymorphism, different subclasses, object instantiation, design patterns and other features of OOP. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

On 2/7/2019 at 1:07 PM, Juniiii said:

Learn html first, then proceed with others.  

No no no. HTML is not a programming language. It's a markup language, and a fairly poor one at that. (You know that a language designed to describe documents is useless when, most of the time, everybody just uses one tag "<div></div>").

 

On 2/7/2019 at 1:04 PM, WolfLoverPro said:

Was going to learn python as my first language but im not sure where to learn it

There is a pretty good lesson at codecademy.com. While it's not technically free, if you can work on it for about one or two hours per day, you can finish the whole thing during the free trial. Barring that, if you can work on it for 30 minutes every day then you can learn the basics of the language and programming during the free trial (the later stuff in the course focuses more on data structures than the language/general programming). That will at least give you enough to know what questions to ask to continue moving forward.

You will see many replies of people telling you the best language to pick as a first language, but in reality you should do a little research and pick any language which meets two requirements:

  • The language can do what you want it to do (which can be hard to decide as a beginner)
  • The language is popular. This makes it easier to find help and information online.


As an aside:
Anyone who wants you to learn C/C++ at some point wants you to become a successful developer. Anyone who wants you to learn C first is probably a troll, and anyone who wants you to try C++ first probably hates you.

C and C++ are fine and beautiful languages in their way, and they have their place, but they are certainly not languages for an absolute beginner.

As an example of C++ not being for beginners, this is what it takes to get a window, put a button in that window, and close the window when that button is pressed.

Spoiler

#include <windows.h>
#include <windowsx.h>
#include <chrono>
#include <thread>
#include <stdlib.h>
#include <utility>


constexpr int Window_Width = 500;
constexpr int Window_Height = 400;
int Window_Pos_X = (1920 / 2) - (Window_Width / 2); // eventually figure out how to make this independent of screen resolution
int Window_Pos_Y = (1080 / 2) - (Window_Height / 2);

constexpr int Button_Width = 200;  // this value will have to be changed to match the length of the buttons text
constexpr int Button_Height = 20;
constexpr int Button_Pos_X = (Window_Width / 2) - (Button_Width / 2);
constexpr int Button_Pos_Y = (Window_Height / 2) + (Button_Height / 2);

constexpr int Base_Sleep_Time = 10;
constexpr int Difficulty = 1;

/*
 * Every game loop, we will sleep for SLEEP_TIME / DIFFICULTY milliseconds.
 * This will affect how fast the window moves away from the users attempts 
 * to close it.
 */

HWND mainWindowHandle;
HWND buttonHandle;

LRESULT CALLBACK WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

std::pair<int, int> GetNewCoords(std::pair<int, int> currentCoords);
void SleepTest();

// The entry point for any windows program
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
	// create the main window WindowClass
	WNDCLASSEX mainWindow;

	ZeroMemory(&mainWindow, sizeof(WNDCLASSEX));

	mainWindow.cbSize = sizeof(WNDCLASSEX);
	mainWindow.style = CS_HREDRAW | CS_VREDRAW;
	mainWindow.lpfnWndProc = WinProc;
	mainWindow.hInstance = hInstance;
	mainWindow.hCursor = LoadCursor(NULL, IDC_ARROW);
	mainWindow.hbrBackground = (HBRUSH)COLOR_WINDOW;
	mainWindow.lpszClassName = L"MainWindow";

	// register the main window
	RegisterClassEx(&mainWindow);

	// create the window	
	mainWindowHandle = CreateWindowEx(NULL,	
                                          L"MainWindow",
                                          NULL,
                                          WS_EX_TOOLWINDOW,
                                          Window_Pos_X,
                                          Window_Pos_Y,
                                          Window_Width,
                                          Window_Height,
                                          NULL,
                                          NULL,
                                          hInstance,
                                          NULL);

	// create the button window
	buttonHandle = CreateWindow(L"BUTTON",
                                    L"Click me if you can",
                                    WS_TABSTOP | WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON,
                                    Button_Pos_X,
                                    Button_Pos_Y,
                                    Button_Width,
                                    Button_Height,
                                    mainWindowHandle,
                                    NULL,
                                    (HINSTANCE)GetWindowLong(mainWindowHandle, GWL_HINSTANCE),
                                    NULL);

	// show the window
	ShowWindow(mainWindowHandle, nCmdShow);

	/* game loop */
	MSG message;

	// while the window exists...
	while (IsWindow(mainWindowHandle))
	{
		// dispatch any messages
		if (GetMessage(&message, NULL, 0, 0))
		{
			TranslateMessage(&message);
			DispatchMessage(&message);
		}

		// figure out if we need to move the window

		/* loop end */
	}
	// return the correct error code
	return 0; // until we have something better to return
}

// This is the main message handler for the program. Windows will call this
LRESULT CALLBACK WinProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
		break;

	case WM_PARENTNOTIFY:
		switch (wParam)
		{
		case WM_LBUTTONDOWN:
			SendMessage(buttonHandle, BM_SETSTATE, TRUE, NULL); // this animates the button down            
			SleepTest();  // sleeping in WinProc doesn't work, but exiting immediately is extremely jarring.
			DestroyWindow(mainWindowHandle);
			return 0;
			break;
		}
	}

	return DefWindowProc(hWnd, message, wParam, lParam); // take care of any cases that we didn't
}

// Checks to see if the window should be moved. Returns the new coordinates
// to move the window to.
std::pair<int, int> GetNewCoords(std::pair<int, int> currentCoords)
{
	return std::pair<int, int>(); // just to get a successful compile
}

// This only exists because calling sleep_for from WinProc does nothing.
// However, calling a method from WinProc does work, and that method can sleep.
// 225 milliseconds is used as my preference. The window closes at a normal pace.
void SleepTest()
{
	std::this_thread::sleep_for(std::chrono::milliseconds(225));
}

That's currently 151 lines of code: just to get a window with a button and close it when that button is clicked. In a modern language like C#, that can be done in about 30 lines total. (and quite a few of those lines are written automatically for you. You actually will only have to write roughly 10 lines of code yourself to get the same result in C#/WPF).
 

 

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, straight_stewie said:

As an example of C++ not being for beginners, this is what it takes to get a window, put a button in that window, and close the window when that button is pressed.

though to be fair, that's mostly because the winapi is super old and weird to work with. GUI development is not C++'s main strength.

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to comment
Share on other sites

Link to post
Share on other sites

38 minutes ago, reniat said:

though to be fair, that's mostly because the winapi is super old and weird to work with. GUI development is not C++'s main strength.

I beg to differ. Look at QT5, that thing is amazing 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

19 hours ago, wasab said:

I am pretty sure any programmer who's worth their salt ought to know OOP inside and out. Might as well as do it in their first language. Besides, if op doesn't learn oop in his first language, he might picked up some real bad programming practices down the road. I've seen people who write spaghetti codes. Why? They never learn to abstract and modularized their code with polymorphism, different subclasses, object instantiation, design patterns and other features of OOP. 

Again your missing what I actually said. Reread it, I clearly said that I recommend Visual Basic .Net for a starting point to learning OOP.

 

When it comes to C based languages, I recommend starting with C and moving up from it. Why, because I know enough programmers who learned C++ and C# before C and after doing C have wished that they started off with it first before moving on to C# or C++. It a personal opinion.

 

But again, I clearly stated multiple times that I recommend Visual Basic .Net as a starting point to OOP based on ease of use and learning from personal experience. Something you seem to have over looked in my posts as you seem overly focused on my personal opinion that anyone who wants to learn C languages should start from the beginning to get a good understanding.

 

I do however disagree with you on your idea of picking up bad programming habits because someone learns the original language first before moving up the ladder. I seen more sloppy coding from 20 year olds because their lazy. You either take pride in your work or you don’t. Sloppy code isn’t the result of learning the original language 1st and moving up the chain to the OOP version of it, it just lazy programming.

 

heck he can learn OOP from working in PowerShell 5.0 if he wanted too. Visual Basic .Net is just my recommendation lol.

Link to comment
Share on other sites

Link to post
Share on other sites

23 hours ago, straight_stewie said:

As an example of C++ not being for beginners, this is what it takes to get a window, put a button in that window, and close the window when that button is pressed

I found that to be much easier in C++ than in ASM.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, Dat Guy said:

I found that to be much easier in C++ than in ASM. 

And I'm sure the microcode programmer finds making a GUI much easier in assembly.

In fact, I've never seen a GUI written in microcode ?

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×