|
Member
(05-28-2012, 07:39 PM)
|
#51
For C++ two of the very best books are Effective C++and More Effective C++. Once you understand the basic syntax of the language, the next step is to figure out how you should best program in that language and to begin to understand what the potential pitfalls are. These two books cover that subject matter and are absolutely fantastic.
If anyone else is quite experienced in non-C++ languages I'd love to know what books they think are equivalent in other languages. Something for the intermediate professional that explains how you should program in the language. |
|
|
|
Member
(05-28-2012, 07:49 PM)
|
#53
Pretty good with vb.net/c# if people need help with that. Also know my way around asp.net if people have questions about that (I know, web stuff isn't 100% programming :p)
Still wanting to get into Objective C and iOS development on the side at some point, because that seems to be one area of growth in the market (mobile web stuff is getting big too) and expanding my skill set is a good idea. And I guess I'll try to have a basic understanding of C++ too thanks to this thread. |
|
Member
(05-28-2012, 07:51 PM)
|
#54
|
|
One day I realized that sadness is just another word for not enough coffee.
(05-28-2012, 07:56 PM)
|
#58
The "for Dummies" series of books are generally not well thought of, though I never read any of them. With a wealth of recommended and acclaimed resources why would you settle for one of those?
|
|
Member
(05-28-2012, 07:59 PM)
|
#59
Cool thread.
I'm currently looking forward to learning Java this summer (gotta refresh my memory for an entry exam first). Also doing some hobbyist stuff with Python and Pygame. Too bad knowing Python isn't exactly employable here, but Java spots are a plenty. |
|
Member
(05-28-2012, 08:00 PM)
|
#60
I'd like to recommend this book by Eric S. Raymond called The Art of Unix Programming. Despite its name I really recommend reading it even if you're not planning on designing applications for Unix, because it teaches you good programming design philosophies that you can use in any programming environment.
http://catb.org/~esr/writings/taoup/html/ Especially this page is essential: Basics of the Unix Philosophy edit: A small taste of what it's about: Culture? What Culture? This is a book about Unix programming, but in it we're going to toss around the words ‘culture’, ‘art’, and ‘philosophy’ a lot. If you are not a programmer, or you are a programmer who has had little contact with the Unix world, this may seem strange. But Unix has a culture; it has a distinctive art of programming; and it carries with it a powerful design philosophy. Understanding these traditions will help you build better software, even if you're developing for a non-Unix platform. Every branch of engineering and design has technical cultures. In most kinds of engineering, the unwritten traditions of the field are parts of a working practitioner's education as important as (and, as experience grows, often more important than) the official handbooks and textbooks. Senior engineers develop huge bodies of implicit knowledge, which they pass to their juniors by (as Zen Buddhists put it) “a special transmission, outside the scriptures”. Software engineering is generally an exception to this rule; technology has changed so rapidly, software environments have come and gone so quickly, that technical cultures have been weak and ephemeral. There are, however, exceptions to this exception. A very few software technologies have proved durable enough to evolve strong technical cultures, distinctive arts, and an associated design philosophy transmitted across generations of engineers. The Unix culture is one of these. The Internet culture is another — or, in the twenty-first century, arguably the same one. The two have grown increasingly difficult to separate since the early 1980s, and in this book we won't try particularly hard.
Last edited by synt4x; 05-28-2012 at 08:57 PM.
|
|
Member
(05-28-2012, 08:02 PM)
|
#62
|
|
Member
(05-28-2012, 08:03 PM)
|
#63
I read a lot of books like The Art of Unit Testing Dependency Injection in .NET But they're about concepts not directly related to the language. Mostly I try to follow the SOLID principle and general good practices with regards to OOD. But again, none of it is directly applicable to C#. |
|
Member
(05-28-2012, 08:04 PM)
|
#64
You can learn C and C++ straight up.. you just won't have some of the niceties of the newer languages.
|
|
Member
(05-28-2012, 08:06 PM)
|
#65
I'm looking for all the best possible resources out there. I'll stick with the ones on the OP, and decide which one is best suited for me.
|
|
Member
(05-28-2012, 08:06 PM)
|
#66
|
|
Member
(05-28-2012, 08:12 PM)
|
#68
Absolute beginner to programming? Doesn't matter. Start with anything and just dive in. Don't be bothered with the religious "language wars." The basic stuff you need to learn exists in every language and the examples you find will be just as good. You're not learning a language, you're learning how to program.
edit: It's more important to find a good resource and good tools for learning than it is which language the resource/tools are in. Personally I think C and C++ are sub-optimal choices since it will be a lot easier to get stuck and not know what is wrong, where some languages with more modern/interactive tools will show you the exact problem when you make a mistake. But honestly, just dive in with whatever you want.
Last edited by usea; 05-28-2012 at 08:15 PM.
|
|
Member
(05-28-2012, 08:14 PM)
|
#70
Edit: Python and C seem like the notable choices.
Last edited by Shadowlink; 05-28-2012 at 08:18 PM.
|
|
Delusion: not just for breakfast anymore!
(05-28-2012, 08:15 PM)
|
#71
|
|
Member
(05-28-2012, 08:17 PM)
|
#72
|
|
Member
(05-28-2012, 08:18 PM)
|
#73
I'd say start with something that's very portable. With those two, C is without a doubt the most portable programming language. It might even be the most portable language of all languages since there are C compilers for pretty much every CPU architecture and operating system out there. C# is pretty Microsoft centric.
And yeah, Python is a great beginners language that is also very advanced. So it's not only for beginners, you can do very advanced stuff with it. |
|
Member
(05-28-2012, 08:19 PM)
|
#74
I started with C, then C++. I also use Python and Bash. |
|
Member
(05-28-2012, 08:20 PM)
|
#75
|
|
Member
(05-28-2012, 08:22 PM)
|
#76
I think python is probably the best language to go with when first learning programming. It's an excellent option. Great resources, interactive interpreter, easy to do stuff and immediately see the results.
But in the end, the language you choose doesn't really matter that much when you first start out. There's a huge amount of things you need to learn, and the language you use has very little impact. You just need to actually dive in. |
|
Member
(05-28-2012, 08:23 PM)
|
#77
I started learning pascal at college which is a very simple language but it's not really relevant in this day and age.
If you are a beginner it doesn't really matter which language you start on. they all have similar principles. its mainly syntax differences. But I do recommend you start with C++ as it is a big language in the programming space and the things you learn from it can easily been applied elsewhere. I've found the migration from c++ to c# to be quite simple for example. Python is also a great beginners language as its so simple to get started and make something quickly. I mad a simple angry birds clone in a couple of days using Python and the Pygame and Pymunk libraries for example. it really is a fun and interesting language. |
|
Member
(05-28-2012, 08:28 PM)
|
#81
|
|
'enry 'ollins
(05-28-2012, 08:39 PM)
|
#82
Quick question, Java-GAF!
For as long as I can remember, I have been declaring and initializing reference types like this: List<Integer> list = new LinkedList<Integer>(); instead of: LinkedList<Integer> list = new LinkedList<Integer>(); I could swear that there was an subtle advantage to my way, which is why I switched to doing it in the first place. I can't remember why. Am I crazy, or was there actually a reason for this? Thanks! |
|
Member
(05-28-2012, 08:39 PM)
|
#83
And to be honest, and is not lack of modesty, I've made some neat stuff, but is never like actually making a freaking game. Somehow I always felt that it was just out of my league, but maybe I'm mistaken. |
|
Member
(05-28-2012, 08:44 PM)
|
#85
To add to OP:
www.codecademy.com www.udacity.com I'm using those two sites to learn programming, and so far it has been great. Codecademy is for beginners, Udacity has some begginer and intermediate courses. Both are free, and completely hands-on. |
|
Member
(05-28-2012, 08:47 PM)
|
#86
So for example if you wanted to change to ArrayList, you would only have to change the one line, not everything. |
|
'enry 'ollins
(05-28-2012, 08:55 PM)
|
#88
|
|
Member
(05-28-2012, 08:56 PM)
|
#89
I started going through Python with inventwithpython.com (I'm sure there's better online tutorials, like the ones mentioned) this weekend and it's crazy how much of an easier time I've had with it than trying to learn C++ on my own. I've been told it's a good language if you want to learn as a hobby but not necessarily for job purposes. I've had fun learning Python whereas with C++ I was struggling more with language mechanics, if that makes sense. Though I kind of want a viable skillset that could theoretically help in future employment. Would it be better to just suck it up and push through C++ instead until I get better or stick with Python and go back once I have a much better foundation?
|
|
(05-28-2012, 09:08 PM)
|
#91
I would really recommend C# at this point. VB's been on its way out as far as MS is concerned. |
|
Member
(05-28-2012, 09:12 PM)
|
#92
And python is very popular for things like front-ends. The back-ends are usually written in something like C++ while the controlling front-end is written in scripting languages like Python. Actually, I think I read somewhere that it's required to know Python if you want to work as a software engineer for Google. I'm not sure if that's true or not, but I know Google uses python for a lot of their front-end implementations. And don't forget that while learning it should always be fun. If you're not having fun learning C++ but do while learning Python, stick with Python because it's much easier to learn if you're having fun while doing it. |
|
Banned
(05-28-2012, 09:13 PM)
|
#93
Okay so I'm trying to pick up C++ on my own for the first time. I'm struggling to figure out yo best go about writing and compiling my code. VS 2010 seems a bit daunting to try to start out using, and writing in Notepad ++ leaves me the issue of figuring out how to compile my code.
|
|
Member
(05-28-2012, 09:15 PM)
|
#94
|
|
Member
(05-28-2012, 09:16 PM)
|
#95
|
|
Member
(05-28-2012, 09:17 PM)
|
#96
Dim myInt as Integer is the same as int myInt; |
|
Member
(05-28-2012, 09:18 PM)
|
#97
http://www.amazon.com/Learning-XNA-4...8239863&sr=8-1
Anyone have this XNA 4.0 book? I have the 3.0 one and it's good but I think I need to upgrade because of some of the things that have changed. Right now looking to do 2D stuff. |
|
Member
(05-28-2012, 09:19 PM)
|
#98
Frighteningly little programming in my CS degree. Even my supposed 'large software project' (a very simple text adventure) ended up being about 20% coding and 80% writing up requirements and risk assessments and team managemet and design analysis. The idea was to simulate a business environment, and it would have been ok actually if the scope of the project wasn't so small that it rendered the whole thing farcical. Very much looking forward to pursuing some of my own interests this summer.
Been dipping my toe into iOS for a few months using the course on iTunes U which I'd highly reccomend. I've got an idea for a VERY simple game which I'm going to work on now I have the time. First though I will need a major refresher in OpenGL, and then I'll need to learn OpenGL ES. Looking at some of the program's I worked on last year is making me scratch my head a bit, even though it's mostly quite basic. Its fun though thinking about it in my head, how to cmpletely separate the rendering engine from the model and stuff. Also signed up for a web development since it covers a lot of things I should probably know (HTML, php, etc) which I'll be doing more casually. Seems like a pretty big undertaking but it's aimed st beginners I think so I should have a head start and it was reduced by 92% so it doesn't really matter if I don't finish. My dad who is an absolute beginner signed as well so that should be interesting. |
|
(05-28-2012, 09:27 PM)
|
#99
CS isn't about learning how to code. It's about the theory. Ideally by the end you'll be able to take the concepts you learned and apply it to any language.
If you want to learn the trade of coding, go into CIS, take extracurriculars, or just learn on your own. |
|
Member
(05-28-2012, 09:34 PM)
|
#100
Many CS programs are very heavily focused on practical programming ability. Others are focused on theory / prepping for PhD programs. There's a hundred variations between. |