Other languages. Any good books?

Whether you're a newbie or an experienced programmer, any questions, help, or just talk of any language will be welcomed here.

Moderator: Coders of Rage

AronE.
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 31
Joined: Mon Sep 14, 2015 8:04 am

Other languages. Any good books?

Post by AronE. »

Its been a long time since I asked a question in this forum. I've completely abondoned Java(its shit) and I'm already working on a plan on how and what to learn. Python, SQL and jQuery were first on my list of languages, I already started with Python and SQL after that I will probably focus on PHP or jQuery (kind of chaotic, I know)

My list (They arent in any specific order):
PHP
SQL
Python
Java and XML (for android)
JavaScript/jQuery
Shell (for Linux, since I installed it on another partition on my HDD, but I know only some basic commands for the terminal)

One of the questions I have is:
What other languages to include in my list? Is C going to prepare me somehow for C++? I know, they are very different, but aside from the syntax, I've heard that C is close to C++ in memory managment aspect. There just have to be other similar things. So, what other languages to include in my list and if you have any suggestions, please tell me why I should learn these certain language/s.

My second question is:
Are there any good books you would suggest about anything around computers. One day I want to be more than just a programmer. I want to have knowledge in many different aspects. In one of the AiGD videos, Falco showed a bookcase from top to bottom filled with books about OpenGL and game development, but one book took my attention. It was "how operating systems work" and two things came to my mind : First, I should start reading books and leave YouTube tutorials. Second, I want to know other things aside from programming. I want to know in details how hardwares, operating systems, networking, security and many other things work. Sure, I know how some of these things work but only basic stuff mentioned in YouTube. I want to know in details.

Are there any books you would suggest for my level AND what books you have/read, since I will some time need them aswell.
K-Bal
ES Beta Backer
ES Beta Backer
Posts: 701
Joined: Sun Mar 15, 2009 3:21 pm
Location: Germany, Aachen
Contact:

Re: Other languages. Any good books?

Post by K-Bal »

It's great to see how passionate you are about this :)

Take one step back and ask yourself what you actually want to DO. Then go ahead and DO IT. Everytime you encounter a problem you come back here and ask us for advice, search on the internet or try to find advice in a book.

This is the only way you will actually learn something and still be able to remember it in 20 years. You can read all the books but you won't remember anything if you don't apply it. And most of those books are not meant to be read as a whole anyway. They are reference manuals. You open them up, read about a specific topic and go straight back to your work.

Btw, if you're interested in web development with Python you should try Django.
AronE.
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 31
Joined: Mon Sep 14, 2015 8:04 am

Re: Other languages. Any good books?

Post by AronE. »

K-Bal wrote:It's great to see how passionate you are about this :)

Take one step back and ask yourself what you actually want to DO. Then go ahead and DO IT. Everytime you encounter a problem you come back here and ask us for advice, search on the internet or try to find advice in a book.

This is the only way you will actually learn something and still be able to remember it in 20 years. You can read all the books but you won't remember anything if you don't apply it. And most of those books are not meant to be read as a whole anyway. They are reference manuals. You open them up, read about a specific topic and go straight back to your work.

Btw, if you're interested in web development with Python you should try Django.
I know what I want to do, I want to program, but having experience only in one thing isn't exactly what I want. I want to know other things as well. Of course, starting from bottom and step by step learning more and more. I read a book a week ago and I know what you mean from "They are reference manuals", but that doesn't mean I didn't learn anything. I'll be 17 in 2 april and I feel like I am/I have wasted my time... It's not like I'm going to read one book and leave it... There is a 10-days break and a whole Summer holiday infront of me, if I can remember a tutorial about something I've watched once, almost 12 months ago, then I certainly will never forget something I've spent my whole holidays on. Even now, after I finish studying, when I have spare time I still practice programming, read books and look for other books... And doing it, still feels refreshing.
User avatar
bbguimaraes
Chaos Rift Junior
Chaos Rift Junior
Posts: 294
Joined: Wed Apr 11, 2012 4:34 pm
Programming Language of Choice: c++
Location: Brazil
Contact:

Re: Other languages. Any good books?

Post by bbguimaraes »

I second everything K-Bal said. The most important thing is having the desire to learn, and you seem to be on the right track.

I'll drop a few specific suggestions here, with a big warning that they are all biased because of my personal preferences. I'll reorder you original post a bit:
AronE. wrote:Its been a long time since I asked a question in this forum. I've completely abondoned Java(its shit) and I'm already working on a plan on how and what to learn. Python, SQL and jQuery were first on my list of languages, I already started with Python and SQL after that I will probably focus on PHP or jQuery (kind of chaotic, I know)

My list (They arent in any specific order):
PHP
SQL
Python
Java and XML (for android)
JavaScript/jQuery
I worked with it for a few years, but I think django is the best framework if you are interested in web development. Linus Torvalds once said he doesn't do web development because he prefers "real programming" [citation needed], but I think there are some solid engineering lessons to be learned, specially if you work on the back-end.

I would say leave php and java out of your list. They served their purpose in the past, but today there are better alternatives. If you decide to learn django (or some other web framework, like rails) I see no reason to learn php. As for java/android, it is not really my thing, but I'd investigate some of the javascript alternatives, like ionic.
AronE. wrote:One of the questions I have is:
What other languages to include in my list? Is C going to prepare me somehow for C++? I know, they are very different, but aside from the syntax, I've heard that C is close to C++ in memory managment aspect. There just have to be other similar things. So, what other languages to include in my list and if you have any suggestions, please tell me why I should learn these certain language/s.
AronE. wrote:Shell (for Linux, since I installed it on another partition on my HDD, but I know only some basic commands for the terminal)
AronE. wrote:My second question is:
Are there any good books you would suggest about anything around computers. One day I want to be more than just a programmer. I want to have knowledge in many different aspects. In one of the AiGD videos, Falco showed a bookcase from top to bottom filled with books about OpenGL and game development, but one book took my attention. It was "how operating systems work" and two things came to my mind : First, I should start reading books and leave YouTube tutorials. Second, I want to know other things aside from programming. I want to know in details how hardwares, operating systems, networking, security and many other things work. Sure, I know how some of these things work but only basic stuff mentioned in YouTube. I want to know in details.
I think every programmer should learn the "low level stuff" if only to understand what really goes on behind the scenes when you use "higher level stuff". So yes, learn c, learn assembly, learn operating systems. It will help you have a deeper understanding of how computers in general work. It's good that you are interested in this, not many programmers are.

And it is really good that you mentioned linux. In my opinion, if you are really serious about computers, the only reasonable choice is free software. This has already been discussed to death, so I'll just leave the suggestion to play around with linux, or some other unix variant. You don't even need to make the switch at once. If you have an older computer (or even a virtual machine or vps), install one of these operating systems and start playing around with it.
AronE. wrote:Are there any books you would suggest for my level AND what books you have/read, since I will some time need them aswell.
I'm a huge fan of books, and I also like to read them from cover to cover, even if they are not meant to (I'm not saying this is a good thing =). If you'll excuse some self promotion, I wrote on my blog about the books I read on 2014, so you can take a look at that:

http://iffalse.blogspot.com/2015/01/2014-books.html

Two other books I'd recommend are The Design of the UNIX Operating System and Structure and Interpretation of Computer Programs. They are both quite old (1986 and 1985) but I think they are still a great read.

I was lucky to find these books on the library back when I was in college, but you can buy them on the internet. You can even find SICP for free (on a Creative Commons license, so free as in beer and as in freedom) online:

https://mitpress.mit.edu/sicp/

Sorry for the Big Wall of Text and best of luck on your studies!
AronE.
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 31
Joined: Mon Sep 14, 2015 8:04 am

Re: Other languages. Any good books?

Post by AronE. »

No probs, I like detailed responses like yours, if you just rearranged my list without explaining why you think it should be like this, then it wouldn't be called learning.
For now, I don't have any touch with the back-end, I know CSS, HTML and some basic jQuery, but I'm interested in back-end aswell.

And from my experience for the past year so far is that open-source is always the best choice. There are two reasons I haven't switched to Linux yet. First of all, its not a gaming platform, and I like from time to time to forget about reality and play games. The second reason is because I'm used to windows and I'm far from knowing everything about Linux. I even tried to switch to Mac OS X Yosemite, because I don't want Windows as a platform to program on, but it isnt compatible with my CPU and GPU. Also, thanks for the books suggestions.
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Other languages. Any good books?

Post by dandymcgee »

I would stray away from PHP for any new development. It's a severely convoluted programming language, which I would rank among the top 10 worst programming languages of all time. Yes, you can make stuff work with it. Yes, it's extremely popular. However, the documentation is shit, the language contradicts itself in almost every aspect, and it's dying, fast. All it would do is teach you a lot of bad habits.

Most of the other popular languages would be fine: JavaScript is being used in the back-end thanks to Google's V8, though JavaScript doesn't teach you much in the way of low-level programming concepts. Ruby, Python, Perl are all useful languages with fairly different approaches.

C/C++ are vitally important if you want to call yourself a serious low-level programmer. C is less... cluttered; for lack of a better term. C++ has a million extensions and some of the syntax can get pretty sketchy for a new guy (though it's not too hard to keep it clean when writing the code yourself). Both will teach you invaluable concepts of memory management, graphics, OS APIs, networking, etc. depending on the project.

If you really want an understanding of what's going on under the hood, it wouldn't hurt to screw around with some x86 assembly. You can do this with legit assembler, or inline ("asm" keyword) in C/C++ with any C compiler. As far a books, Donald Knuth's "The Art of Computer Programming" is the essential history lesson book, obviously there a million other language-specific books that are good.

As far as free, online books I'm a *huge* fan of the http://www.learncodethehardway.org books. There's one for Python, Ruby, C, SQL and RegEx. They are all excellent reads.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
AronE.
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 31
Joined: Mon Sep 14, 2015 8:04 am

Re: Other languages. Any good books?

Post by AronE. »

Thanks for the responses, you guys are actually answering my questions and even giving me info about other things. Usually, in my country if you ask a question in a forum, everyone calls you an idiot, no matter what question you ask, even when their knowledge is not far away from mine... I've already started reading. Im going to continue with Python, SQL then learn the other languages. C, x86 Assembly and C++ are last on my list, since they are the hardest (as I said, starting straight from the bottom, climbing step by step :lol: ).
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Other languages. Any good books?

Post by dandymcgee »

AronE. wrote:Thanks for the responses, you guys are actually answering my questions and even giving me info about other things. Usually, in my country if you ask a question in a forum, everyone calls you an idiot, no matter what question you ask, even when their knowledge is not far away from mine...
That' just stupid. We're all here to learn. Please don't be afraid to ask for help. The smartest people in the world are also often the humblest.
AronE. wrote:Im going to continue with Python, SQL then learn the other languages. C, x86 Assembly and C++ are last on my list, since they are the hardest (as I said, starting straight from the bottom, climbing step by step :lol: ).
Well, if you think about it, x86 is "the bottom" and Python is "the top". Everything Python does is built on lower-level tools. Of course I know what you meant: bottom = easier syntax and more tutorials. I think both directions of learning are fine (I prefer the low-to-high approach), but the more important thing is that you ensure that you eventually make it to the other end of the spectrum so that you can see the whole picture; from x86 assembly language to JQuery.

Also.. tell all of your programming friends to come ask questions here.. it's been too damn silent recently and I could always use more quality programming discussions in my life. ;)
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
AronE.
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 31
Joined: Mon Sep 14, 2015 8:04 am

Re: Other languages. Any good books?

Post by AronE. »

dandymcgee wrote:
AronE. wrote:Thanks for the responses, you guys are actually answering my questions and even giving me info about other things. Usually, in my country if you ask a question in a forum, everyone calls you an idiot, no matter what question you ask, even when their knowledge is not far away from mine...
That' just stupid. We're all here to learn. Please don't be afraid to ask for help. The smartest people in the world are also often the humblest.
AronE. wrote:Im going to continue with Python, SQL then learn the other languages. C, x86 Assembly and C++ are last on my list, since they are the hardest (as I said, starting straight from the bottom, climbing step by step :lol: ).
Well, if you think about it, x86 is "the bottom" and Python is "the top". Everything Python does is built on lower-level tools. Of course I know what you meant: bottom = easier syntax and more tutorials. I think both directions of learning are fine (I prefer the low-to-high approach), but the more important thing is that you ensure that you eventually make it to the other end of the spectrum so that you can see the whole picture; from x86 assembly language to JQuery.

Also.. tell all of your programming friends to come ask questions here.. it's been too damn silent recently and I could always use more quality programming discussions in my life. ;)
"Tell all of your programming friends to come ask questions here" LOL. I don't have any programming friends. I barely have any friends at all (Problems with my class... They suck at going through puberty xD) I have a friend who writes front-end and is REALLY damn freaking good with the hardware, but doesn't know english and is satisfied with his knowledge. Aside from him I know a guy that writes pawn scripts, because he has a CS 1.6 server, but doesn't want to learn programming at all, he doesn't know english as well, he spells "arrey" or "arey", instead of "array" .. And struggles with the basics. I'm the only one that wants to progress and learn more and more.. Right now I'm learning Python network programming and I'm reading a book "Foundations of Python Network Programming", 2nd edition. I kind of like it.
mattheweston
Chaos Rift Junior
Chaos Rift Junior
Posts: 200
Joined: Mon Feb 22, 2010 12:32 am
Current Project: Breakout clone, Unnamed 2D RPG
Favorite Gaming Platforms: PC, XBOX360
Programming Language of Choice: C#
Location: San Antonio,Texas
Contact:

Re: Other languages. Any good books?

Post by mattheweston »

A good foundation in the fundamentals and HOW things work is always a plus; however, you need to start applying what you've learned to gain a more applicable knowledge. For example, if you want to write web applications come up with an idea no matter how trivial and build it. If your goal is game development, then start with a small game and build it.

What you'll find is that once you complete a small project, you will know what to come back and study. Study areas that gave you problems. Study areas that you want a more in depth knowledge of. Ask yourself know can I do x better and research it. How can I improve my process to completing this project? The action of going through the life cycle of a project will force you to think of things you might miss if you just try to compile a list of books/resources to study and THEN go do a project.
Image
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Other languages. Any good books?

Post by dandymcgee »

AronE. wrote:Right now I'm learning Python network programming and I'm reading a book "Foundations of Python Network Programming", 2nd edition. I kind of like it.
I always thought it would be fun to write some sort of server/client application where a bunch of people write their own client in any language they want. Obviously there would be a common specification for how messages are encoded for transport, but aside from that everyone could customize their client to do cool things. If you ever want a remote partner to play with networked stuff let me know. Testing it locally just isn't nearly as fun. :P
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
AronE.
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 31
Joined: Mon Sep 14, 2015 8:04 am

Re: Other languages. Any good books?

Post by AronE. »

dandymcgee wrote:
AronE. wrote:Right now I'm learning Python network programming and I'm reading a book "Foundations of Python Network Programming", 2nd edition. I kind of like it.
I always thought it would be fun to write some sort of server/client application where a bunch of people write their own client in any language they want. Obviously there would be a common specification for how messages are encoded for transport, but aside from that everyone could customize their client to do cool things. If you ever want a remote partner to play with networked stuff let me know. Testing it locally just isn't nearly as fun. :P
The thing is, you don't understand... I'm still a beginner in programming overall, let alone in python.. :D I'm not Falco, you know. And that actually kinda frustrates me, I wanna be as smart, I want to have his logic and knowledge.... If I ever program with you, you will probably lose faith in humanity, because of how bad I am.. But who knows, maybe you can teach me the stuff I can't find in the tuts or books... Because I know I'm missing something, I just don't know what...

And I even have a stupid question for you. Lets say I have a class and 2 functions in it, I make an object(Text widget /tkinter/, an entry) in one of these functions, I write something in the widget, but I want to somehow with a click of a button /another widget/, to get the text ive entered and pass it to another function. How do I do it? I cant make the goddamn thing work...
I just want to make an object and use whatever text I've entered in it globally...
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Other languages. Any good books?

Post by dandymcgee »

AronE. wrote: The thing is, you don't understand... I'm still a beginner in programming overall, let alone in python.. :D I'm not Falco, you know. And that actually kinda frustrates me, I wanna be as smart, I want to have his logic and knowledge.... If I ever program with you, you will probably lose faith in humanity, because of how bad I am.. But who knows, maybe you can teach me the stuff I can't find in the tuts or books... Because I know I'm missing something, I just don't know what...
Everyone was a beginner once.. (even Falco believe it or not!) I used to tutor programming in college, so trust me when I say I've met people who are much worse than you. You have an obvious desire to learn and improve, which already puts you ahead of 20% of the people I know who paid $100,000+ to go to school for Computer Science.
AronE. wrote: And I even have a stupid question for you. Lets say I have a class and 2 functions in it, I make an object(Text widget /tkinter/, an entry) in one of these functions, I write something in the widget, but I want to somehow with a click of a button /another widget/, to get the text ive entered and pass it to another function. How do I do it? I cant make the goddamn thing work...
I just want to make an object and use whatever text I've entered in it globally...
That doesn't sound like a stupid question, but I'm having trouble without seeing some code or having a more concrete idea of what you're trying to accomplish. I just made a Discord channel for programming discussion, I'll be idling in there pretty much every night after 6:00 PM EST. Feel free to hop in and ask anything you want. https://discord.gg/0lYtQl5oK46yLcXD
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
AronE.
Chaos Rift Newbie
Chaos Rift Newbie
Posts: 31
Joined: Mon Sep 14, 2015 8:04 am

Re: Other languages. Any good books?

Post by AronE. »

So, yesterday after I posted my reply, I spent atleast an hour or more trying to figure out what I was missing, somehow I figured it out, but another error popped up xD.. So I think I should delete the whole thing and start all over again.. :D It's not a big loss, 60 lines of code for the first file... I was trying to make a textbox, where I enter a text and with the click of a button I send it to a server-side file, where it prints it out to a Text Area. Im still stuck with sending... :D :D But I have some crapped out code I made in 10-20 minutes for the server-side, which is probably not working. :D
Update: Great!!! Now, I have absolutely no fucking errors, but the code doesn't work, it doesn't print out anything.. That's not what I expected, but better than what was before... :lol: :lol:

Edit: I wonder, if I'm not mistaken Falco says in one of the first AiGD videos that the year they start the project was 2004, correct? If that's true, how old was he back at the time, when these first videos were made?
User avatar
dandymcgee
ES Beta Backer
ES Beta Backer
Posts: 4709
Joined: Tue Apr 29, 2008 3:24 pm
Current Project: https://github.com/dbechrd/RicoTech
Favorite Gaming Platforms: NES, Sega Genesis, PS2, PC
Programming Language of Choice: C
Location: San Francisco
Contact:

Re: Other languages. Any good books?

Post by dandymcgee »

AronE. wrote: Edit: I wonder, if I'm not mistaken Falco says in one of the first AiGD videos that the year they start the project was 2004, correct? If that's true, how old was he back at the time, when these first videos were made?
Falco would have been around 14-15 at that time.
Falco Girgis wrote:It is imperative that I can broadcast my narcissistic commit strings to the Twitter! Tweet Tweet, bitches! :twisted:
Post Reply