Post number #296849, ID: 3c5052
|
I'm not intersted in web but I want to work while studying in college. I'm pretty aware of discrete math and calculus
Post number #296892, ID: 7593b1
|
By not interested web I guess you don't want to bother with web technologies, if so then good call. It's among other things the most bottom-tier form of programming. You should still decide on what corner of programming to focus on. I like embedded and systems-level programming. C and C++ should come in handy for that. Why not look up some tutorials on your language of choice and get started? You shouldn't have much problems since you're good at math.
Post number #297019, ID: 5c2172
|
https://www.sololearn.com
Post number #297235, ID: b181e6
|
Just use vb.net. It's easy, fun and useful. You can use it for almost all kinds of classic desktop programming jobs. The only exception is secure must apps. Because .net languages aren't native, so an attacker can reach the pseudo-source codes with one click. But for some basic and common business apps, it's great. Even if you won't use it for jobs, you can learn it as your first step like i did and never even regret once.
Post number #297406, ID: 86b6d6
|
if you want to work while avoiding the web: C# or Java. .NET as mentioned above isn't the worst place to start either.
Post number #297463, ID: 4802db
|
What about C++? I have 2 years before college
Post number #297493, ID: 1deff6
|
C++ is shit and has become overly complicated in dealing with things. Of all the languages it has aged terribly and looking at c++ code is worse than looking at Perl code.
Post number #297549, ID: 26088e
|
Depend on what you want to do, each language has good side and bad side.
Post number #297694, ID: f345f7
|
By wanting to "become a programmer", what you're really saying is you want to be able to talk efficiently to the computer. We can all already communicate to the computer in some capacity depending on our usage of the machines.
Professional programmers are simply people who go past the graphical user interfaces and not only use the processes but create them as well.
You should first study some of the principles of computer science. Learn what makes the machine tick.
Post number #297696, ID: f345f7
|
Then, if you are interested, study networks. Study the system that allows you to see this page for instance. Study the TCP/IP framework and be able to distinguish between the web and the internet.
It's not required that you know any of this unless you're planning on programming for the web (e.g. coding web applications/sites) or creating algorithms for network control.
Post number #297701, ID: f345f7
|
Then, once you've gotten enough of the low-level concepts down, pick a language. Any language. Java, Python, C++, etc. You don't necessarily need to know the specifics of any of these languages. You just need to know the similarities (e.g. control flow).
I would also consider you study some design frameworks (e.g. object-oriented design). These frameworks are really important for developers and some languages can't even exist without them.
Post number #297705, ID: f345f7
|
This all probably makes no sense whatsoever. Keep learning. You'll get all this eventually.
Post number #297846, ID: 0c9387
|
>>296849 Learn how a computer is constructed, to understand the concept of modularization and what "functions" are.
Theoretically (and also practically) you could learn the binary numerical system, the Boolean Algebra (DeMorgan) and build a computer with a bunch of basic semiconductor parts which can do: 1. logical AND (or OR) operations 2. logical negation 3. generate a clock (quarz) 4. "store" a status (flip-flop) Put them together to an CU and an ALU, which together is the CPU.
Post number #297854, ID: 0c9387
|
>>297846 If you understand how to put these parts together you already understood how "programming" works, as here it is done by wiring the hardware components. In the end everything a computer does goes back to simple binary operations which a software programmers uses to operate or create new functions. Of course on a real computer you need to store your work on more persistent storage than "flip-flops", which loose their information without power-supply.
Post number #297856, ID: 0c9387
|
Also "high" programming languages are abstracted from the hardware, and they need hardware-specific "compilers" to translate the code into the "machine-code" which are the instructions for the CPU (which is, as I already told you, the sum of the "ALU" and the "CU") Plus some of them have more advanced features than just writing instructions and defining functions: defining Objects.
Post number #297864, ID: 0c9387
|
>>297856 In the end everything goes back to the 4 types of semiconductors I mentioned. If you want to know and understand how to put them together correctly, search for "Shift-Registers", "Arithmetic Logical Unit" (ALU), "Control Unit" (CU) and "Harvard-Architecture". Maybe get an emulator to play around with "machine-code" (Assembler) instructions. Then try to understand how a compiler works and what types of programming languages there are. Everything is modular and functional!
Post number #298226, ID: 86b6d6
|
>>297463 if you have a particular use case in mind then sure why not? be prepared for a serious uphill battle though.
Post number #298395, ID: fd4e50
|
>>297463 >>297493 C++ can be and is used to make efficient programs, as it allows hardware near programming. C++ codebase and project have high quality standards as average c++ developers are more skilled than e.g. JavaScript or python. I love python, but there is so much junk arround and the real good stuff is as complicated as c++. Instead of focusing at a specific language learn something about functions, modularity and eventually data-types and objects.
Post number #299513, ID: 40b344
|
>>298395 You're basically describing C. As of javascript, python, etc, in comparison to C++, it is more the difference between compiled and interpreted languages.
OP, really, learn some C. It is the best to create your 'core values' around which to build upon with time, layer after layer. The language is small, is WYSIAYG (what you see is all you get), some of its shortcomings and headaches actually reflect the true nature of hardware...
Post number #299519, ID: 40b344
|
.... and where things actually do go wrong even in other languages which cover the exact same issues with layers of abstraction.
This is The Book. From the language authors, two of the Gods of the Computing Universe.
This is all you will need for the language. No dialects, no fancy libraries, no platform specifics. You asked for foundations, and this is it.
Post number #299535, ID: 914825
|
Also, check out Derek Banas on YouTube
Post number #301428, ID: a452e0
|
>>299519 Isn't this book outdated?
Post number #301547, ID: 1deff6
|
>>301428 Is it? Not that I know of. It is about ANSI/ISO C and all it covdrs is just that. Not that I am some great programmer, but the small things I have done for my convenience do not generate any warning when compiling. While if I do the same using K&R C style, I do get warnings.
Post number #301594, ID: 1deff6
|
Ok, I did a quick search whether the book is outdated or not. It doesn't seem to be, in my opinion. It describes what is known as c99. The current standard is knkwn as c11 and it adds a few things to c99 but does't put its elements in obsolete/old status. Like: It adds direct standard support for multithreading; Adds support for unicode; Structures can be anonymous too if needed; fopen() has a new mode to open a file for exclusive access, this to allow safer use of mutexes; ...
Post number #301598, ID: 1deff6
|
... Actually there is no more the function gets(). It seems it was mostly used by crooks to generate buffer overflows as that function does not know beforehand the length of the string it will read. It is now replaced with gets_s() which does not suffer from this.
But still, the point is that everything learned in that book, is valid. What it doesn't cover can be safely learned as an addition and that knowledge does not invalidate what is previously learned.
Total number of posts: 25,
last modified on:
Tue Jan 1 00:00:00 1527725399
| I'm not intersted in web but I want to work while studying in college. I'm pretty aware of discrete math and calculus