PHP and which c?


#1

So codecademy does not offer any c courses or PHP, unfortunately. I am looking to learn PHP and really just one c course (c, c++, or c#). Are there any good sites like codecademy to teach me these? I love codecademy but want to expand my learning. Also, let’s just say for general purpose, which of those three c languages should I learn? What do you guys think would be most useful?


#2

The world runs on C
C is a small language. You can understand all of it.
C is missing many modern features, you may need libraries for hashmaps and such, or perhaps just about anything.
C++ is big and complicated. But you get a whole lot of things that are missing in C
Not sure why you would mention C# with the other two. It’s a “C” only by name, compare it to java instead.

You might also consider go and rust, where go is sort of a more modern C, and rust avoids a whole lot of bugs involving memory

More useful? None of those if you’re looking for a general purpose language, because it’s hard to get things done and get things right. (go and rust are better in that regard, as is C# and java)

I write everything in python unless there’s good reason not to

…It’s entirely up to what you’re looking to do.


#3

Yeah so I have completed python, and I’m defintley going after java and javascript (yes, I understand they are completely different languages)

so I guess if I did learn a c I would go ahead and go after C++ … thanks for helping me with that.

Also, do you think it would be useful to learn bash? And what about the other question part? Like, where else would I go to learn C++ and/or PHP since codecademy does not offer it? Any good recommendations similar to codecademy?


#4

js is kind of nasty if you ask me. I hope the web folks figure out something nicer… It’s just a bunch of hashmaps bolted together in all which ways and then functions, backed up by really freaking impressive run-time environments because the browsers want to be fast. But browsers are a thing.

You should probably ask yourself what you’d do with java. I haven’t really ever had a “ooh this would be good in java” moment. Library support perhaps.

bash - if you use anything other than windows, yes. It’s like speaking instead of pointing when you use a computer. You can say much more sophisticated things. I use bash as a file manager (instead of a gui) and for starting most applications… many of which run in the terminal anyway
As a language it’s horrendous of course (use python) but as an interactive shell I’m happy with it.
Oh and I wouldn’t say that I can program in bash, even though I use it a lot - it’s more of a thing where I learn the things I want to do with it.

For learning C++ I would expect to read a whole lot. That’s the kind of language you get an 800 page book for. Maybe not quite, but it’s not there to be easy, it’s there to make things possible if you really know what you’re doing. You’ll get learning resources to match. C is a strong contender as a first language, but C++ is certainly not, it’s the opposite, you should have a rock solid idea of how to write code in other languages before you consider it. It’s the kind of language that provides you all the things you need to hang yourself, and a bunch others to make it easier to do so. You’re on your own.

I know nothing of PHP, kind of got it discarded as outdated web tech, but make no claims about the accuracy of that statement, it may be entirely wrong and I wouldn’t be surprised.

I’m all for learning a bunch of languages, in particular developing an ability to quickly pick up new ones. But you should definitely ask yourself why as well. So again, a suggestion of using python until you know what you need that is different. Yes, go ahead and learn things for the sake of learning, just don’t expect it to be useful to you, not until you have reason to use something.


#5

If you have good reason to learn PHP, go with it. Can’t argue against that.

C and/or C++ are a good idea if you ever plan to open the source code of another language or just about anything that does low level plumbing stuff.
They’re also good if you have performance constraints, you might only have a megabyte to spare or you care a whole lot about response time or throughput. Like, a lot, not “kinda”.
They’re also good for getting a lower level view of how things operate, particularly memory management.

Want to make reliable stuff? Get yourself acquainted with go instead. It’s pretty good with performance and latency too. Not quite C, but you get a lot of niceties, it’s a trade-off as with everything.

Bash is a great idea. Get yourself something to glue other things together. It’s kind of a standard computer interface, you should know your way around here. A good start is to figure out how to run python programs from bash, perhaps some other tools too. Bash does run on windows if that’s what you’re on. WSL is probably the best option for that (if you’re on windows 10)


#6

I highly recommend sticking in few languages or in a specific area of web development (what Codeacademy is focused right now). For example, don’t expect becoming a master in Python if you are learning a lot of other languages and not practicing it in a project (doesn’t matter if it is academic or just hobby).

The programming languages have big advantages and disavantages, so don’t become a big mess of “everything” and be like a spear on few things, you know what I mean.

C is a good language because it is the lowest (besides Assembly) you can go to develop embedded devices, work on hardware, OS and such stuff. There are some nice sites to learn like the ones listed here.

If you wanna go full Python programmer or data scientist, I recommend Datacamp, but most of their courses are premium content. Also there are lot of free courses at Udemy related to anything you want to learn (like JS, Ruby, HTML, etc). Pluralsight is another premium site that has (haven’t tested it yet) C++, C#, Python, etc.

A little note about PHP: You can still access the Codeacademy PHP course but don’t expect it to last too long.

Cheers!


#7

Thanks for the replies. See, here’s my situation:

I’m 15 years old in the 10th grade. I’m currently looking at being an anesthesiologist or pharmacist, but I’ve also considered being a software engineer for google. Right now, coding is just a hobby, so I would only like to learn languages I would use. That’s where I’ve heard python, JS, and java are the most useful for general-purpose. Maybe ruby too. But then again, I want to know if there’s another language I’m missing, or maybe should replace, like c, c++, c#, bash, etc. (I think I’m gonna drop PHP because I’ve watched a few videos and read some comments, and going into 2018, I think it’s pretty useless and complex, don’t you guys think?

I made this thread to say this:
I want to keep the languages to sort of a minimum, so I don’t get overly-stressed and forget important parts of another language. I sound confusing, I know. but for example, say I have learned Python, ruby, JS, java (haven’t yet, this is hypothetical). I’m worried about PHP or bash or a c language, and I forget how to use one of those other languages.

Sorry if I’m confusing everyone, I’m just stressed about my future, even if coding is just a hobby right now.


#8

It is a hard question since programming languages have their own area of application. For example, there are faster languages for web development, there are others more focused on data science, others that are multiplatform or simply for the development of mobile applications.

I’m a 23 years old dude that has a Mechanical Engineering degree and currently I’m finishing my Electronic Engineering career. In the last two years, I have been learning coding and such stuff since it is the future (due to IoT) but because I’m a engineer, it is a must for us.

However, It is pretty good when people wanna build their own future toward a professional career, doesn’t matter if it isn’t coding-related. But if you gonna learn a programming language (as hobby or as a need), think about it: There is a lot of tastes and flavours related to programming, you must investigate about the current trend through sites like Octoverse Github or TIOBE, don’t stick to learn “Ruby” (a.e) because it is cool or such stuff.

Try to seek their advantages and disavantages, you are still too young to get stressed about it, trust me. If you gonna learn towards web development, read this article.

Hope it helps you mate :wink:


#9

Thanks for that reply, but I’m not interested in web development. As for as a coding career goes, I’m set on software development/engineering. I don’t want to learn ruby because it sounds cool, but because a lot of things are written in it, like metasploit. The same reason I want to learn coding at all.

Have read and watched a lot about what languages I should learn, and my list is accorded to that:
Python(completed)
JS
Java
Ruby(maybe)

However, my question is now, that which C language should I learn, if any, and should I replace a C for say java or ruby. I don’t think beside any language listed here, I want to go after, like swift or go. Just doesn’t interest me. And yes, thanks for the replies again, because I have read them, but still not sure what’s best for me. Just general-purpose programming, like gaming applications and web applications. That’s where the four listed above come in, because I thought those would be best suited. I am on windows and have an iphone. I just don’t know if It would be best to go after a c instead of java or ruby, or if ruby in necessary since I’m mainly going with python. Again, no extra languages like SQL, PHP, bash, etc. because I don’t want to get overloaded with information so things won’t be too complicated for me. Though i’M Always open to learning, most defintley, I feel a 4-6 language goal would be good for me. Maybe even less, just only what’s needed.


#10

You’ve got “general purpose” covered. Anything you learn on top of that should be for specific purposes or for educational value where the learning is the payoff, not the language.

Give them all a whirl. Figure out how to do Hello World in each of them. If you’re on windows10, check out WSL which will get you a very linux-like environment, you get a bash shell and you get easy access to compilers and interpreters (installing them is a single command with no windows-style gui’s involved) For example, you’d do something similar to:

sudo apt update
sudo apt install ruby python3 gcc g++ nodejs default-jdk

To install compilers/interpreters for ruby, python, C, C++, JS, java
If everything’s configured correctly and you’re on a fast connection, this should take something like 1-2 minutes. (This time is spent on downloading compressed packages, checking their integrity, decompressing and writing to disk. There are no (or very few) long tasks to be carried out like one might expect on windows, and definitely no reboots (???))
I suspect that the corresponding actions in windows takes a whole lot more effort and time, with huge environments split into many pieces and lots of installers to click through. Here you have it all in the same place


#11

Oh!! I understand now. Well as @ionatan said, you have covered the “general purpose” path. But, since you mentioned that you are interested in software development/engineering, I highly recommend:

  • C: If you’re going to deal with kernels, device drivers, storage, or anything low in the system. It is the most low level system programming language that you can find. Almost every other language is inspired by C.
  • C++: If it will be a large scale project, with lots of contributors, and compatibility with C is important. Mostly used for game development, numerical and scientific computing and system programming like C.
  • C#: It is like Java (developed by Microsoft). So stay with Java.

In my honest opinion, Python is the best suited for you, since it handles pretty well software development / engineering / data science and easy syntax. Also, don’t replace Java for any other language, since it is very useful these days and the write once, run anywhere paradigm that Java uses is pretty need.


#12

Thank you all so very much!! I now know what I’m going to do:

1.)keep working on python
2.)do java before javascript
3.)complete javascript

That should be my general purpose, as stated above.

For anything more, if I feel like it, then I’m going to go after c, c++, and ruby. No c#, since I have ruby, and those other languages are just going to be for accomplishment and expanded knowledge. Don’t think I’ll need them, but just in case, I’ll work on them. (my “go-to” languages for the future)

Again, thanks for the help with everyone in this thread, it has straightened things out for me :slight_smile: