If I find another programming language easier should I stay with it instead?
-
Really? Oh that gives me hope. I order a book on C# and wanted to try it nut I thought it was modified Java so I caceled the order and thought that I force myself to study from my Java books.
If you've already coded in Java, C# will feel somewhat "familiar", but I think of it as more streamlined and more cohesive than Java. It's just more ... flowy to code in. The hardest thing about it is getting used to MicrosoftPascalCasingSchemesInTheDnf Like it's IPAddress, but DnsEntry. (if an acronym is 3 letters or more, it gets title case treatment)
Real programmers use butterflies
-
I don't like tutorials. I just want to read one book from the begining to the end that will answer my queestion "What's the purpose of this and that". The problems are that tutorials are there, the books are there but the answers to questions "Why to use?" and "When to use?" aren't there. A simple example is java interfaces. When I'm reading books and whatching tutorials this is what i get "Interface is a contract. And know what java number this and that allows better interface" Ehhh okey.... but what is it exactly and why should I bother to use it? I cmade programs without it so far and everything is tip top, so why should I use it now? What's the point? "Because compiler doesn't know if a method exist" So what? Why should I write a method in an interface and not directly in a class? No answer there. I check a book on C++... Oh, Now I understand. It's an attempt to go back to multiple inheritance that was thrown away by java inventors X|
I think this, and your other responses, suggest what you are really good at is talking about what you think you are learning ... rather than really learning. To reach mid-level mastery [1] of any of C, C++, C#, Java, for most mere mortals beginning to program is going to take a year, or more, of hard work. The tendency to imagine you know more than you know is as dangerous as imagining you know what you don't know. When someone as gifted and experienced as Richard MacCutchan gives you advice, you should take it ! That's great that you find C compelling, but, is it possible you are motivated by a desire to avoid Java which may be necessary for your studies ? [1] I would define this as being able to create an application that runs on a specific OS, on specific hardware, has a UI, and does something useful
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
-
I wish newer C++ would provide an auto member-wise copy constructor if you explicitly asked for it. I don't know what that would look like though.
foo(const foo& rhs) auto;
or something One thing that's nice about C# is it does that for you. True if you're not used to it, ICloneable seems awkward but everything in the CLI/CLR including foreach enumerability is exposed through interfaces so it makes sense. At best C# could have added a language feature (syntactic sugar) to wrap it. Personally I find ICloneable intuitive after a learning curve, which is better than say, SQL.
Real programmers use butterflies
foo(const foo& that) = default;
subject to some restrictions that make sense.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing. -
foo(const foo& that) = default;
subject to some restrictions that make sense.
Robust Services Core | Software Techniques for Lemmings | Articles
The fox knows many things, but the hedgehog knows one big thing.yeah something like that. I just wish there was a way to do unions whose members had nontrivial albeit zero argument constructors but I understand why there's not. It would just be so convenient.
Real programmers use butterflies
-
If you've already coded in Java, C# will feel somewhat "familiar", but I think of it as more streamlined and more cohesive than Java. It's just more ... flowy to code in. The hardest thing about it is getting used to MicrosoftPascalCasingSchemesInTheDnf Like it's IPAddress, but DnsEntry. (if an acronym is 3 letters or more, it gets title case treatment)
Real programmers use butterflies
-
In the begining I would like to thank you for all your responses to my late topic on job :) I read them all. Now I have another question. I know I'm whining too much... :~ You probably think I'm acting like a prima donna. So, I heard some advices from the other programmers that If find a programming language hard, i shouldn't give up on programming and maybe try another. So I did it. About one month or two ago I started to learn c++. And immediately everything started to click. I even began to understand some java concepts that I couldn't get before. A week ago I read like about 600 pages of Deitel book on C++ like it was an interesting novel. Now I'm almost on the same productivity level as my java just in one week. I don't use pointers yet and don't allocate memory either, sometimes I have to check out the syntax but I can make simple console games(I struggle, i didn't finish any yet, but I can ;P ). I bought Bjarne Stroustup's book and I love it... I just want to learn more and program, but today I thought... damn.. I have to stop. I have assignments on java for school and I'm late. They will kick my out of college so I thought, I focus only on java. I thought: "It's a good language, it has great support for GUI, I can get job". So I woke up in the morning and thought: "I will read those java books with the same passion!" and I opened my java book... and that's it.... I can't go any further. I don't know if the problem is books themselves, are books on java really that horribly written or is it a language itself? I simply can get why and when I should use interfaces, why should I bother studying those (100 * infinity) libraries when I can write programs using just few. What is the purpose of abstract class, inner class, biolerplate code here, boilerplate code there... Plenty of lines just to print "Hello World!". I can't stand it anymore :(( Smart people, what should I do?
Programming languages are part of the toolbox of a good programmer, each with its own strengths and weaknesses. A good programmer will try to use the programming language most appropriate to the job. For example, most programmers would not write a program to calculate orbits in COBOL, nor would they write an interactive game in Fortran (though it is possible to do both). A good programmer will know more than one language, and will be able to write code in the differing styles that these languages impose, e.g. procedural for C and C++, Object-Oriented for C++ and Java, etc. The idea is that you should be able to match the project to the appropriate language. Many programmers have had a long and successful career knowing only one language (for example the COBOL programmers who started in the '60s). Today, you are likely to migrate between projects with differing requirements, and cannot afford to limit yourself in such a manner. In addition to your Computer Science studies (data structures, algorithms, etc.), I would recommend trying to learn at least one popular language a year - C, C++, Java, Python, etc. You do not have to become a master of the languages, just know how to program in them and where to find the more advanced stuff. This will help you when you have to look for a job. Programming is a challenging career, but it can be very rewarding to the right person. Good luck!
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
I wish newer C++ would provide an auto member-wise copy constructor if you explicitly asked for it. I don't know what that would look like though.
foo(const foo& rhs) auto;
or something One thing that's nice about C# is it does that for you. True if you're not used to it, ICloneable seems awkward but everything in the CLI/CLR including foreach enumerability is exposed through interfaces so it makes sense. At best C# could have added a language feature (syntactic sugar) to wrap it. Personally I find ICloneable intuitive after a learning curve, which is better than say, SQL.
Real programmers use butterflies
What's this with ICloneable? It adds a Copy function which you have to implement yourself. Whether that's a shallow or deep copy or anything in between is up to the implementer. Microsoft advices against the use of ICloneable (in public APIs) as it doesn't do anything and rolling out your own IDeepCloneable and/or IShallowCloneable would be more clear. From the docs[^]: "Because callers of Clone() cannot depend on the method performing a predictable cloning operation, we recommend that ICloneable not be implemented in public APIs." Maybe you're talking about Object.MemberwiseClone Method (System) | Microsoft Docs[^] (which returns a shallow copy)?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
-
What's this with ICloneable? It adds a Copy function which you have to implement yourself. Whether that's a shallow or deep copy or anything in between is up to the implementer. Microsoft advices against the use of ICloneable (in public APIs) as it doesn't do anything and rolling out your own IDeepCloneable and/or IShallowCloneable would be more clear. From the docs[^]: "Because callers of Clone() cannot depend on the method performing a predictable cloning operation, we recommend that ICloneable not be implemented in public APIs." Maybe you're talking about Object.MemberwiseClone Method (System) | Microsoft Docs[^] (which returns a shallow copy)?
Best, Sander Azure DevOps Succinctly (free eBook) Azure Serverless Succinctly (free eBook) Migrating Apps to the Cloud with Azure arrgh.js - Bringing LINQ to JavaScript
Ah, I wasn't aware of that fine print. Well I always do implement my
ICloneable
as private and implement anICloneable<T>
type instead which (in my code) is always a deep copy. And "clone" really should imply that anyway. And technically, what actually constitutes a "deep" copy is always up to the caller anyway. Some fields in a deep copy may indeed be shallow copied, like if the object uses string pooling or something, and I find Microsoft's docs to be characteristically trite on such matters. Frankly, I know if I call ICloneable I'm getting the counterpart to MemberwiseClone. That implies a deep copy. And as I said, what that is is always up to the caller in the end anyway. What's expected is a "copy" of the object, but again, when you throw things like pooling into the mix, what that means might be different than what you expect.Real programmers use butterflies
-
In the begining I would like to thank you for all your responses to my late topic on job :) I read them all. Now I have another question. I know I'm whining too much... :~ You probably think I'm acting like a prima donna. So, I heard some advices from the other programmers that If find a programming language hard, i shouldn't give up on programming and maybe try another. So I did it. About one month or two ago I started to learn c++. And immediately everything started to click. I even began to understand some java concepts that I couldn't get before. A week ago I read like about 600 pages of Deitel book on C++ like it was an interesting novel. Now I'm almost on the same productivity level as my java just in one week. I don't use pointers yet and don't allocate memory either, sometimes I have to check out the syntax but I can make simple console games(I struggle, i didn't finish any yet, but I can ;P ). I bought Bjarne Stroustup's book and I love it... I just want to learn more and program, but today I thought... damn.. I have to stop. I have assignments on java for school and I'm late. They will kick my out of college so I thought, I focus only on java. I thought: "It's a good language, it has great support for GUI, I can get job". So I woke up in the morning and thought: "I will read those java books with the same passion!" and I opened my java book... and that's it.... I can't go any further. I don't know if the problem is books themselves, are books on java really that horribly written or is it a language itself? I simply can get why and when I should use interfaces, why should I bother studying those (100 * infinity) libraries when I can write programs using just few. What is the purpose of abstract class, inner class, biolerplate code here, boilerplate code there... Plenty of lines just to print "Hello World!". I can't stand it anymore :(( Smart people, what should I do?
I think you're confusing language syntax and class libraries. You don't so much "learn" libraries; the art is in knowing how to find something that will help you accomplish what you want.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
-
I think you're confusing language syntax and class libraries. You don't so much "learn" libraries; the art is in knowing how to find something that will help you accomplish what you want.
It was only in wine that he laid down no limit for himself, but he did not allow himself to be confused by it. ― Confucian Analects: Rules of Confucius about his food
-
It seems like Java is the right tool for almost everything because it has good GUI support but... it so messy... Like it's ok up to inheritance and GUI and than... lambda this... abstract class this, inner class that, interface that, library this, library that. For a beginner like me it's a total chaos.
No, Java isn't right for anything and its practitioners should never be allowed near a computer.
-
No, Java isn't right for anything and its practitioners should never be allowed near a computer.
-
Programming languages are part of the toolbox of a good programmer, each with its own strengths and weaknesses. A good programmer will try to use the programming language most appropriate to the job. For example, most programmers would not write a program to calculate orbits in COBOL, nor would they write an interactive game in Fortran (though it is possible to do both). A good programmer will know more than one language, and will be able to write code in the differing styles that these languages impose, e.g. procedural for C and C++, Object-Oriented for C++ and Java, etc. The idea is that you should be able to match the project to the appropriate language. Many programmers have had a long and successful career knowing only one language (for example the COBOL programmers who started in the '60s). Today, you are likely to migrate between projects with differing requirements, and cannot afford to limit yourself in such a manner. In addition to your Computer Science studies (data structures, algorithms, etc.), I would recommend trying to learn at least one popular language a year - C, C++, Java, Python, etc. You do not have to become a master of the languages, just know how to program in them and where to find the more advanced stuff. This will help you when you have to look for a job. Programming is a challenging career, but it can be very rewarding to the right person. Good luck!
Freedom is the freedom to say that two plus two make four. If that is granted, all else follows. -- 6079 Smith W.
-
I think this, and your other responses, suggest what you are really good at is talking about what you think you are learning ... rather than really learning. To reach mid-level mastery [1] of any of C, C++, C#, Java, for most mere mortals beginning to program is going to take a year, or more, of hard work. The tendency to imagine you know more than you know is as dangerous as imagining you know what you don't know. When someone as gifted and experienced as Richard MacCutchan gives you advice, you should take it ! That's great that you find C compelling, but, is it possible you are motivated by a desire to avoid Java which may be necessary for your studies ? [1] I would define this as being able to create an application that runs on a specific OS, on specific hardware, has a UI, and does something useful
«One day it will have to be officially admitted that what we have christened reality is an even greater illusion than the world of dreams.» Salvador Dali
:(( Yes, you are probably right. I think Java GUI is scary :(( I'm not there yet... so I'm running away from it :(( But I told myself today that I have to practice on focus on what I have to do. No more conslolation languages that make me feel like I can program something while I'm still stack in java Swing :(( Tommorow...:suss: Java Swing I'm comming :suss:
-
If you've already coded in Java, C# will feel somewhat "familiar", but I think of it as more streamlined and more cohesive than Java. It's just more ... flowy to code in. The hardest thing about it is getting used to MicrosoftPascalCasingSchemesInTheDnf Like it's IPAddress, but DnsEntry. (if an acronym is 3 letters or more, it gets title case treatment)
Real programmers use butterflies
-
That's probably why. Buy Accelerated C++. You'll be glad you did. It will make you a better coder. It did me!
Real programmers use butterflies
-
In the begining I would like to thank you for all your responses to my late topic on job :) I read them all. Now I have another question. I know I'm whining too much... :~ You probably think I'm acting like a prima donna. So, I heard some advices from the other programmers that If find a programming language hard, i shouldn't give up on programming and maybe try another. So I did it. About one month or two ago I started to learn c++. And immediately everything started to click. I even began to understand some java concepts that I couldn't get before. A week ago I read like about 600 pages of Deitel book on C++ like it was an interesting novel. Now I'm almost on the same productivity level as my java just in one week. I don't use pointers yet and don't allocate memory either, sometimes I have to check out the syntax but I can make simple console games(I struggle, i didn't finish any yet, but I can ;P ). I bought Bjarne Stroustup's book and I love it... I just want to learn more and program, but today I thought... damn.. I have to stop. I have assignments on java for school and I'm late. They will kick my out of college so I thought, I focus only on java. I thought: "It's a good language, it has great support for GUI, I can get job". So I woke up in the morning and thought: "I will read those java books with the same passion!" and I opened my java book... and that's it.... I can't go any further. I don't know if the problem is books themselves, are books on java really that horribly written or is it a language itself? I simply can get why and when I should use interfaces, why should I bother studying those (100 * infinity) libraries when I can write programs using just few. What is the purpose of abstract class, inner class, biolerplate code here, boilerplate code there... Plenty of lines just to print "Hello World!". I can't stand it anymore :(( Smart people, what should I do?
When I was in school we had assignments in languages I just didn't get and furthermore knew I would never use, those I learned enough to complete the assignments. The ones that I did get and knew I would use I studied relentlessly until I became fluent.
I'm not sure how many cookies it makes to be happy, but so far it's not 27. JaxCoder.com
-
Ah, I wasn't aware of that fine print. Well I always do implement my
ICloneable
as private and implement anICloneable<T>
type instead which (in my code) is always a deep copy. And "clone" really should imply that anyway. And technically, what actually constitutes a "deep" copy is always up to the caller anyway. Some fields in a deep copy may indeed be shallow copied, like if the object uses string pooling or something, and I find Microsoft's docs to be characteristically trite on such matters. Frankly, I know if I call ICloneable I'm getting the counterpart to MemberwiseClone. That implies a deep copy. And as I said, what that is is always up to the caller in the end anyway. What's expected is a "copy" of the object, but again, when you throw things like pooling into the mix, what that means might be different than what you expect.Real programmers use butterflies
-
I wish newer C++ would provide an auto member-wise copy constructor if you explicitly asked for it. I don't know what that would look like though.
foo(const foo& rhs) auto;
or something One thing that's nice about C# is it does that for you. True if you're not used to it, ICloneable seems awkward but everything in the CLI/CLR including foreach enumerability is exposed through interfaces so it makes sense. At best C# could have added a language feature (syntactic sugar) to wrap it. Personally I find ICloneable intuitive after a learning curve, which is better than say, SQL.
Real programmers use butterflies
Well, that's problem for me with those modern languages that I'm still learning and they do stuff for me. At my college we are not allowed to use libraries that's why it's a blessing to read c++ books because they teach how to do stuff from scratch. I need that for my school :( Of course if I start working as a professional I will be gladluy using those libraries, but today they are not so helpful because I'm not allowed to use them anyway so they just make me confused X|
-
When I was in school we had assignments in languages I just didn't get and furthermore knew I would never use, those I learned enough to complete the assignments. The ones that I did get and knew I would use I studied relentlessly until I became fluent.
I'm not sure how many cookies it makes to be happy, but so far it's not 27. JaxCoder.com