Learning Programming: Where do I start?

programming

(appie) #1

Hey

I had last a discussion on the IRC but now that im thinking clearly its better to learn a programming language.:stuck_out_tongue:
so my question is where can i learn it. well what i mean is i would love to learn python very good but the problem is i don’t know where to start yes i know i need to start with the basics.but I want to start on small projects and learn from them. And what is the best OS to learn python is it Linux or is windows better i love to work on Linux if it go’s about programming. But windows i have allot experience with it :stuck_out_tongue:

thanks, allot

PS.love this community


(Luigi) #2

Well, to learn programming anything, you just need… To start writing codes hahaha, praticing is the best way.
If you want to learn python, i can recommend you the codeacademy: www.codecademy.com for learning the basics of the language


#3

Sentdex has by far one of the best playlists on python (beginner - intermediate - even Machine Learning). I wouldn’t recommend codecademy unless you have never heard of programming before. Enjoy…


(appie) #4

yeah sentdex i followd him for a while never did something with it mayby time to take this serious :slight_smile:


(Valentine) #5

I suggest grab a book and read,read,read… of course practicing the concept but don’t forget to also learn the inner workings of the code itself. I’ve recently started to realize that there’s more to coding then just coding. A computer is a very complex piece of technology and just because you can build a awesome piece of software but don’t understand the inner workings… well, that effort wouldn’t help much. I suggest reading the wannabe programming tutorials first so that way you at least understand how a computer interprets the code and how memory works, but at the same time learn your programming language that you find interesting. Hope that helps, cheers.


(ntropi) #6

I would definitely recommend using Linux as a daily driver. If you want to learn Python, I found Automate the Boring Stuff by Al Sweigart to be both an intuitive introduction as well as contains many useful programming project suggestions to get you to begin actually writing code. If you’re partial to more academic approaches, you could supplement the book using MIT’s Introduction to CompSci and Programming, which uses Python as its base language. And, as always, ask questions around here. :slight_smile:


(Hardware Bias!) #7

I think the best way would be to read books (like, a shitload of them) and then after every chapter code your own software with the concepts you just learned so you understand how to use them.

It’s not theory > practice or theory < practice, but theory == practice.

-Phoenix750


#8

Hi mate,

I will give you some advises based on my own experiences.

If you want to learn how to properly code, I advise you to start with C. It is, from my opinion, one of the most “difficult” languages. Indeed, you have to learn how to manage your memory and avoid unauthorized accesses, leaking, etc. It will help you to fully understand the interaction between your code base and your machine and acquire the methodology and the logic behind coding ! Indeed, once mastering C programmation, you will be able to code in other types of language, except oriented object which is a different way to tackle development.

In fact, Python is more considered as a scripting than a programming language and is, as every scripting technology, quite easy to handle. (Only if you don’t want to touch to preprocessor programming which is an another world ahah !)

Lastly, keep in mind that Google refers all you have to know :wink:

Allow me to disagree with you. Yes, it is important to take into account how this magical thing works :slight_smile: However, it is widely considered as pre optimization and can severely impact on the stability and reliability of your software ! Just saying !

To conclude, start from the bottom with basic stuff then try to improve your code base. Here is, once again, from my point of vue, the best approach.

Some ideas of project :

  • Mail client / server
  • Tools to automate LFI, RFI, XSS, etc.
  • Web crawler
  • API

Hope it helps.

Best,
Nitrax


(Valentine) #9

You have to disagree to agree.

I see your point of view, but I also disagree. It all depends on what one is interested in. I would recommend C, but python is more friendlier to beginners in my opinion. C is a lot more challenging to learn especially if you’re learning without any guidance by others. Of course that’s what this forum is about, to help one learn, but I still wouldn’t recommend C if you’re a absolute beginner. Just saying.

Cheers. :smiley:


#10

Your position makes sense. However, I started from scratch as a self-learner without any knowledge in programmation and It was very rewarding. I maintain that mastering C affords more flexibility and a better understanding of the programming world .

Different methods ;). That is why computer science is so interesting.

Best,
Nitrax

P.S : I’m a C nazi ahah


(Valentine) #11

Same here. I started from scratch also, but from my experiences it can be frustrating. I prefer C over all programming languages but I was introduced to coding through Java. It took me a while to understand the concepts 'cuz I was a skid (big time). In the end C is the best language to learn, but not at first. It maybe more flexible but it’s not user friendly. Unless you’re a genius or take a course in C, I still wouldn’t recommend it.

Cheers. :slight_smile:


#12

@Nitrax, @Valentine: Trying to push someone to a specific direction based on your personal experience is not wise imo.

There is no “right” programming language for a starter. @appie35, your question has no correct answer. In the end, it’s all about which language “clicks” to you. You can be programming 24/7 in python without knowing about memory or C at all and still make a shitload of money and enjoy it at the same time and vice versa. The big advantage of C is that it introduces you to an insane amount of aspects and fields of Computer Science which can take you to the next level. Most of the knowledge I have (even non-programming related) is thanks to C. On the other hand, you may not be the low-level guy who likes visualizing bits and bytes. Just play around with many languages and find the true bae. Who knows, you may be a future JavaScript ninja. Just don’t force yourself. It’ll be 100% frustrating trying to get to ACTUALLY know the language itself but that’s what makes it fun.

A great programmer should know both the high and low level view of his/her machine, keep that in mind.

Best of luck…

P.S Don’t you dare call yourself a 1337 programmer/hacker if you don’t know how memory works.


(oaktree) #13

Pick a language (good options are C, C++, C#, Java, JS, Ruby, Python, Haskell, Go, Rust, Crystal, Erlang – ya got me: I’m listing all of them).

There is no one language that will allow you to master programming; rather, to master programming, you must transcend language itself.

However, mastering at least one language is undoubtedly a great way to start. Ask yourself: What interests you more: the nitty-gritty, or getting the job done? Languages tend to favor one side or the other.

Once you’ve picked your language, get comfortable with it. Implement a few algorithms (sorting, search, ciphers). Familiarize yourself with your language’s standard library. Reimplement that standard library – the fun parts, at least.


You’ve gone this far. You have a grasp of at least one programming language. Now it’s time to learn another programming language, its internals, its libraries, how to write pretty, language-specific code…

You should be approaching the point where you’re thinking less about code and more about what code means. Understanding a program’s logic is really important.


10,000 Hours

Getting good at programming takes a lot of time. It will not be easy. I advocate the 10k hours rule (this is about 5 years of a full-time job).


Wanna be 1337?

If you want to be 1337, as @_py has suggested, then you must start at the bottom! You’ll need technical knowledge of your OS and how computers work.


(appie) #14

First of all thanks everyone who has replied on this.
Well language that im learning is python it seems that I like it. I follow the tuts of sentdex and make with the help of that. i learn to make my own variables :stuck_out_tongue:
so yeah thanks for all your replies BTW i don’t even know what a 1337 is i will search it up but still thanks everyone :slight_smile:


(Hardware Bias!) #15

Tells person to not follow someone else’s footsteps, later on tells them to learn memory or else they aren’t dank enough.

gg @_py

-Phoenix750


#16

@Phoenix750: I know, I’m glad someone saw the irony.


#17

Start with Brainfuck, I wouldn’t recommend it though


(oaktree) #18

Don’t start with Brainfuck!


#19

btw if you already started with brainfuck, join #brainfuck for any help you need.


#20

hi every1, am in the same situation. i dnt know where to START, i dnt know anything about coding, about Logic or About Algorithm but realy i love this shit… so help me to find out the best way to start… 1 year ago i was just having fun with Android Apps, SystemUi and Framwork modding (Small things) so when my Status bar got transparent my love with Coding Started… now i want to learn from the root not only modifications, i want to build something by my own, i want to do things like Elliote on Mr. Robot :joy: :grin: Just to figure Out… ah i have tried Linux based systems (Ubuntu, Elementary Os) and i liked it, but now am using Win10.
And so for my bad English
Thank You