|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
I was wondering I am interested in software developing. Is there any tips in trying to... prepare for it?
I am assuming that OOP languages like java and c++ would be good. What topic or "field" should I try to familiarize myself in (theoretical topics like data structures/search, gui etc...)? How well or how much in depth should I know a certain OOP language?
Btw is C sharp and python something worthy to learn (thought python was good mostly for networking)?
Right now my goals consist of(in order and respectively):
Learning *c++,* java,* html, python?,c#?, javascript?,
ones with asterisk denote me wanting to know them extensively ones with question mark denote me unsure
|
C is not object oriented.
Java seems to be the standard and most commonly taught language right now - so you might be able to find more citations and subjects on your level to learn it.
|
On June 12 2012 15:13 Anacletus wrote: C is not object oriented.
Java seems to be the standard and most commonly taught language right now - so you might be able to find more citations and subjects on your level to learn it. type on the C. meant to say c++
|
I've been told its better to learn C++ then java instead of the other way around, taking my CS degree next year and want to get ready before hand. Kind of ties with the above question but a little less direct. Already know most web languages, have a diploma in web design already.
|
On June 12 2012 16:34 Esoterikk wrote: I've been told its better to learn C++ then java instead of the other way around, taking my CS degree next year and want to get ready before hand. Kind of ties with the above question but a little less direct. Already know most web languages, have a diploma in web design already. Well, I would have to disagree. It's not far from the truth to say that Java is C++ with the difficult stuff removed. If you want both, I would strongly recommend learning Java first, so that you know how to actually make the computer do what you want. Then go for C++, which includes learning something about what the computer actually does.
|
On June 12 2012 16:34 Esoterikk wrote: I've been told its better to learn C++ then java instead of the other way around, taking my CS degree next year and want to get ready before hand. Kind of ties with the above question but a little less direct. Already know most web languages, have a diploma in web design already.
Why would it be better?
Honestly, if you are able to complete the program/project with the language you know or will know, it doesn't matter what it is. I program with C#, reason: Gets the job done quickly and efficiently. Don't need to sit there and worry about forgetting complex syntax or references, it just works well.
The best reason to learn a language (Apart from what work/college might want you to) is if it's able to help you produce the projects you want to work on. There is tonnes of information about which languages are used where, just need to search for it.
As a biased opinion: SQL, C# and C++ are worth learning imo.
|
Languages are tools, you have to be willing to work with the one that's gonna get the job done. For the vast majority of professional work, you won't have the option of choosing which language either. e.g. Your boss is going tell you this needs to be done in VB.net using MVC4 w/ Razor and you're not gonna have a choice 
If you're learning how to code don't pick a language to learn, pick a project to do. Once you have a goal in mind, find out what technologies are needed, and pick the one that suits the project best.
If you really want a sample list: Do some application programming (I prefer C++, up to you) Do some web programming(I like Apache, php, and mySQL, the other popular choice would be microsoft's ASP environment) Do some mobile work(android is the easiest to get into, but W7 phone or IOS are good options)
|
I agree with everyone that languages are merely tools to get things done. Each language may be better suited for different tasks, but as far as learning OOP goes, I think it's better to learn java than say, C++ or C#. There are just so many good OOP resources based on java. Of course, it's common for a C# programmer to pick up ideas from such resources, but I think it's just much more convenient to learn using java since you don't have to worry about different syntax and such.
Actually, I take that back. I'm not all too familiar with the OOP resources C++ or C# provides, so I admit I'm a bit biased toward java. Nonetheless, java is still a solid choice for learning OOP
|
On June 12 2012 14:34 heroyi wrote: I was wondering I am interested in software developing. Is there any tips in trying to... prepare for it?
I am assuming that OOP languages like java and c++ would be good. What topic or "field" should I try to familiarize myself in (theoretical topics like data structures/search, gui etc...)? How well or how much in depth should I know a certain OOP language?
Btw is C sharp and python something worthy to learn (thought python was good mostly for networking)?
Right now my goals consist of(in order and respectively):
Learning *c++,* java,* html, python?,c#?, javascript?,
ones with asterisk denote me wanting to know them extensively ones with question mark denote me unsure
If you really want to thoroughly understand WHY and HOW some things work regarding software developping, start coding in a low level language like C or C++. In the numerous tutorials you find on the web, you will grasp a better insight in how datastructures and certain algorithms work in programming. In Java, you'll encounter too many functions already prepared for you, which is handy if you understand the underlying principle in how it works, but you won't learn much if you don't.
On the web-coding part, you should start with HTML. HTML however is not the only standard anymore on the web. You start with HTML and you'll learn CSS while you progress. HTML goes hand in hand with Javascript, so pick that up when you think you got a grasp on HTML and CSS. Javascript will also get you warm for the real work, which is C and C++ low- level programming.
Regarding Python and C sharp, I don't know much about the languages so I can't tell you much.
Also for anyone reading this who's interested in Datastructures and Algorithms, there is a free online course currently running on behalf of Stanford University at https://www.coursera.org/course/algo I think you can still sign up for the course if you're quick.
|
With the amount of support that Java has these days, it's hard to go past it as an introduction to programming. A lot of concepts you learn in Java can be carried to plenty of other languages, too.
Personally I went C++ first as I didn't really know about other languages at the time, but I've found that the main OOP languages all share common traits so it's quite easy to pick them all up once you grasp the concepts. Start with Java in my opinion ^_^
|
first language i learned was C++ and i had no problems coding java or c# for other projects i guess it also works the other way round so its really not big of a deal how you learn programming. its just that the syntax differs
|
In my slightly biased opinion, learn C first, then C++. If you can learn C and C++ to a decent degree, everything else is easy.
|
Joel Spolsky has written very eloquently on why he considers experience in down-and-dirty, low-level programming (which generally means C) when learning how to program: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
This isn't to say that there's no merit to the view that a language like Java is well suited to a beginner because of the relative ease of getting a basic program to work in such a language, but Java, C# and other such languages are so far away from the level at which the computer actually operates that I think it's more valuable to start with C or C++, which don't have the shrinkwrapped automatic tools to do half the work for you. They'll give you the tools to understand what is actually happening when you program at a higher level of abstraction via a language like Java, C#, PHP and so on.
I actually program in PHP and Javascript for 99% of my job, and I've never professionally written an application or extension in C, but I use the knowledge that I gleaned from four years of C/C++ programming in my undergrad program (which switched to Java the year I graduated) on a daily basis.
|
On June 12 2012 16:34 Esoterikk wrote: I've been told its better to learn C++ then java instead of the other way around, taking my CS degree next year and want to get ready before hand. Kind of ties with the above question but a little less direct. Already know most web languages, have a diploma in web design already. If you have long term plans in programming and want to actually be able to deduce some good programming practices instead just memorizing them I think C or C++ are very good thing to know. C and C++, if you have time to master them, give you a glimpse into what is hiding behind the curtain in garbage collected languages and makes you more aware of possible issues. Plus they are both still used in some cool areas of programming where performance is most important. C is probably better there as C++ has more overhead if OOP is used. So I would definitely say that if you have time learn C, C++ is optional and has a lot of ugly design ideas, you can just skip it and go to C#/Java/whatever.
|
On June 12 2012 20:50 stafu wrote: In my slightly biased opinion, learn C first, then C++. If you can learn C and C++ to a decent degree, everything else is easy. C is not the best first language really. I think the old way of Pascal->C->C++->whatever is still the best. You can replace Pascal with similarly clear not OOP language and you can replace C++ with Java/C# as they have better designed OOP aspects. Reason is that before learning OOP you should learn proper structural programming and OOP aspects of Java/C# just get in the way of achieving this goal. C is bad at this as it has a lot of "unnatural" quirks. So after you master basics of structural programming , you move to C to learn the whole pointer and memory management thing. After that OOP. C# may be more natural choice due to the previous step being C, but it does not really matter.
|
On June 12 2012 14:34 heroyi wrote: I was wondering I am interested in software developing. Is there any tips in trying to... prepare for it?
I am assuming that OOP languages like java and c++ would be good. What topic or "field" should I try to familiarize myself in (theoretical topics like data structures/search, gui etc...)? How well or how much in depth should I know a certain OOP language?
Btw is C sharp and python something worthy to learn (thought python was good mostly for networking)?
Right now my goals consist of(in order and respectively):
Learning *c++,* java,* html, python?,c#?, javascript?,
ones with asterisk denote me wanting to know them extensively ones with question mark denote me unsure You could pick a course from these. Beware, they are not slow!
|
On June 12 2012 21:22 mcc wrote:Show nested quote +On June 12 2012 20:50 stafu wrote: In my slightly biased opinion, learn C first, then C++. If you can learn C and C++ to a decent degree, everything else is easy. C is not the best first language really. I think the old way of Pascal->C->C++->whatever is still the best. You can replace Pascal with similarly clear not OOP language and you can replace C++ with Java/C# as they have better designed OOP aspects. Reason is that before learning OOP you should learn proper structural programming and OOP aspects of Java/C# just get in the way of achieving this goal. C is bad at this as it has a lot of "unnatural" quirks. So after you master basics of structural programming , you move to C to learn the whole pointer and memory management thing. After that OOP. C# may be more natural choice due to the previous step being C, but it does not really matter. What would be a good replacement for Pascal in that progression in your mind? My first language as a kid was QBASIC, which I think is pretty excellent for just learning the basic logic of how a computer program works, but I haven't found a decent interpreter for any BASIC dialects that runs on a modern computer.
|
On June 12 2012 21:06 mcc wrote:Show nested quote +On June 12 2012 16:34 Esoterikk wrote: I've been told its better to learn C++ then java instead of the other way around, taking my CS degree next year and want to get ready before hand. Kind of ties with the above question but a little less direct. Already know most web languages, have a diploma in web design already. If you have long term plans in programming and want to actually be able to deduce some good programming practices instead just memorizing them I think C or C++ are very good thing to know. C and C++, if you have time to master them, give you a glimpse into what is hiding behind the curtain in garbage collected languages and makes you more aware of possible issues. Plus they are both still used in some cool areas of programming where performance is most important. C is probably better there as C++ has more overhead if OOP is used. So I would definitely say that if you have time learn C, C++ is optional and has a lot of ugly design ideas, you can just skip it and go to C#/Java/whatever.
I guess everyone's learning experience differs, but I started out with java and it's been helping me learn C tremendously. For example, the java book I learned from explained in a stripped down version of how memory is allocated, basic idea of how "pointers" work by "pointing" to the referenced memory location, etc. And this was my first ever programming book, so I was really surprised how easily my knowledge carried over to C.
|
On June 12 2012 21:25 AmericanUmlaut wrote:Show nested quote +On June 12 2012 21:22 mcc wrote:On June 12 2012 20:50 stafu wrote: In my slightly biased opinion, learn C first, then C++. If you can learn C and C++ to a decent degree, everything else is easy. C is not the best first language really. I think the old way of Pascal->C->C++->whatever is still the best. You can replace Pascal with similarly clear not OOP language and you can replace C++ with Java/C# as they have better designed OOP aspects. Reason is that before learning OOP you should learn proper structural programming and OOP aspects of Java/C# just get in the way of achieving this goal. C is bad at this as it has a lot of "unnatural" quirks. So after you master basics of structural programming , you move to C to learn the whole pointer and memory management thing. After that OOP. C# may be more natural choice due to the previous step being C, but it does not really matter. What would be a good replacement for Pascal in that progression in your mind? My first language as a kid was QBASIC, which I think is pretty excellent for just learning the basic logic of how a computer program works, but I haven't found a decent interpreter for any BASIC dialects that runs on a modern computer. I do not really know, I do not know if there were some new languages good for teaching basics created recently, so Pascal is still the best choice in my mind. BASIC in general is probably not the best , but some dialects are quite good for teaching basics. My first language was of course also BASIC, some obscure dialect on Sharp MZ-800 computer Then I moved to qBasic, but just for few small programs and then we immediately switched to Pascal at school.
Also thanks for posting that excellent article by Spolsky. Definitely agree with his points.
|
On June 12 2012 21:45 mcc wrote:Show nested quote +On June 12 2012 21:25 AmericanUmlaut wrote:On June 12 2012 21:22 mcc wrote:On June 12 2012 20:50 stafu wrote: In my slightly biased opinion, learn C first, then C++. If you can learn C and C++ to a decent degree, everything else is easy. C is not the best first language really. I think the old way of Pascal->C->C++->whatever is still the best. You can replace Pascal with similarly clear not OOP language and you can replace C++ with Java/C# as they have better designed OOP aspects. Reason is that before learning OOP you should learn proper structural programming and OOP aspects of Java/C# just get in the way of achieving this goal. C is bad at this as it has a lot of "unnatural" quirks. So after you master basics of structural programming , you move to C to learn the whole pointer and memory management thing. After that OOP. C# may be more natural choice due to the previous step being C, but it does not really matter. What would be a good replacement for Pascal in that progression in your mind? My first language as a kid was QBASIC, which I think is pretty excellent for just learning the basic logic of how a computer program works, but I haven't found a decent interpreter for any BASIC dialects that runs on a modern computer. I do not really know, I do not know if there were some new languages good for teaching basics created recently, so Pascal is still the best choice in my mind. BASIC in general is probably not the best , but some dialects are quite good for teaching basics. My first language was of course also BASIC, some obscure dialect on Sharp MZ-800 computer  Then I moved to qBasic, but just for few small programs and then we immediately switched to Pascal at school. Also thanks for posting that excellent article by Spolsky. Definitely agree with his points. I highly recommend all of the articles in the sidebar on his site - he doesn't post very often, but a lot of his writing is really excellent.
|
|
|
|