Jump to content

Programming Faq

majorawsome

Well, I have started this thread because new people who come here will want to know how to get into the the world of programming, or just to look at the FAQ. Well here we go...

 

What programming language should I choose?

 

Well, What do you want to do?

  • Do you want to just learn the fundamentals of programming? (Python)
  • Do you want to create games? (C#, Java, C++)
  • Do you want to create an operating system? ©
  • Do you want to create demanding games with crazy graphics? (C++)
  • Do you want to create GUI based programs for Windows? (C#, Visual Basic, C++, Java)
  • Do you want to create a website? (HTML, Python, Ruby, PHP, Javascript, CSS)
  • Do you want to make apps for Metro? (C#, C++, Visual Basic, Javascript)
  • Do you want to create iOS or Android apps? (Objective-C, Java, (C, C++ Natively) respectively)

 

What is an IDE?

 

Intergrated Development Enviornment. This is where the coding happens. An IDE is a program that lets you code and debug the program.

If you are looking for an IDE here are a few (NOTE: Not a complete list)

http://Thenewboston.org is an amazing site that has plenty of tutorials, from Programming all the way to Physics!

Another website is http://CodeAcademy.com, which is an interactive coding website.

 

We also have a thread on this forum dedicated to tutorials posted by Zonked, The thread is here. http://linustechtips.com/main/topic/14904-ultimate-programming-resources-thread/

 

And what about books? They're great! They have a wealth of information and they make you look geeky too! geekCred++

 

Ok, I am comfortable with my language now what?

 

Well, Why not get working with some APIs, Libraries, or Frameworks?

 

Woah, woah, woah. What is all of that stuff?

 

This is a common question, but not hard to explain at all.

  • API (Application Programming Interface) is like a service that is used in your program to share information with other programs. For example, say I wanted to make a twitter app. I can't just say print "This is a twitter app", I need it to connect to Twitter.com and push/pull tweets from that service.
  • Libraries is a 3rd party group of files that help with a specific function. Once example is the Math library built into pretty much every single language. The Math library has methods like square root and convert radians to degrees and such.
  • Now for the final one. Frameworks. You can view frameworks as a bunch of libraries that can work well with one another, but cannot be modified and are meant to be used extensively in application development. For example, the .NET framework is used in C# and Visual Basic all the time because that's what the languages were built on. Another framework is the XNA framework for C#, which is a game development framework that is built into the application to handle all of the programming that is needed for basic user input and displaying the game.

 

But what if I don't want to do any of that? I just want to work with [insert system here (Android/iOS)]

 

Well why not use an Software Development Kit (SDK)?

 

What is an SDK?

 

What was that? You don't know what an SDK is?????!?!?!?!?!?!?!?!?!?!?!?!?!?!??!?!?!?!?!?!?!!!!!!!!!!!!1/11/1?1!??!?!/1?!?1/1/!?1/1!?!?!?!?!

Don't worry I'll tell you

It's a set of developer tools for hardware platforms. For example, the Android SDK comes with an emulator so you can run your app on the device instead of having to upload it to your own device every time you debug your program.

 

So what kind of SDKs are there?

 

  • Android SDK - used for Android app development
  • iOS SDK used for iPhone, iPad, and iPod Touch development
  • Direct X SDK - used for development with the Direct X framework for game development on C++

But what if I want to learn web development?

 

Well, lets start with the basics.

 

HTML: Hyper Text Markup Language

 

So, HTML is used for the root of your webpage. When you write this code this is how the webpage is displayed.

 

I know there is a lot that I missed but this is the stuff that comes off the top of my head. Please comment down below for me to add stuff to it! I know there will be a lot!

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

You should probably add Javascript and CSS to the web design option; you can't do much without them. And if you want to add an IDE option for PHP then NetBeans is my personal favourite.

Link to comment
Share on other sites

Link to post
Share on other sites

You should probably add Javascript and CSS to the web design option; you can't do much without them. And if you want to add an IDE option for PHP then NetBeans is my personal favourite.

Thanks! I am new to the Web Development block ^-^

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

I would also change your definition for API.

It's an Application Programming Interface, meaning it's not limited to passing data back and forth. In fact, everything in programming can be considered an API. (Because an "Application Programming Interface" is exactly what a programming language is)

Link to comment
Share on other sites

Link to post
Share on other sites

I would also change your definition for API.

It's an Application Programming Interface, meaning it's not limited to passing data back and forth. In fact, everything in programming can be considered an API. (Because an "Application Programming Interface" is exactly what a programming language is)

Not everything in programming can be considered an API, an API is a way to transport information from one software to another.

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

You should add objective-C and java for ios and android programming. You could also add titanium (javascript). This is a good tool to create simple apps for ios and android and it can be ported to both platforms.

CPU: Intel i7 2600K @3.5 GHz  | Case: Fractal Design Arc Midi 2 | Motherboard: Gigabyte Z67x-UD3-B3 Ram: Kingston HyperX 16 GB | Video Card: Nvidia GTX 580 Storage: Kingston Hyperx 120 GB SSD + 2x2 TB HDDPower Supply: Silverstone 750W Monitor: Apple Cinema 21" | Keyboard: Corsair K90  | Mouse: Steelseries XAI Headset : Steelseries 9H 

Link to comment
Share on other sites

Link to post
Share on other sites

no C?? Really??

Updated for Operaing Systems. What else is there? I've never used C exstensivly. ^_^

 

You should add objective-C and java for ios and android programming. You could also add titanium (javascript). This is a good tool to create simple apps for ios and android and it can be ported to both platforms.

Done. Titanium is an SDK but I will add that later. :P

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

"An application programming interface (API) is a protocol intended to be used as an interface by software components to communicate with each other. An API is a library that may include specification for routinesdata structuresobject classes, and variables. An API specification can take many forms, including an International Standard such as POSIX, vendor documentation such as the Microsoft Windows API, the libraries of a programming language, e.g., Standard Template Library in C++ or Java API."

-http://en.wikipedia.org/wiki/Application_programming_interface

 

Again, an API is not limited to transporting data. An "Application Programming Interface" is a term so broad it basically covers everything. In basic terms, an API is the front-end of any kind of library. The video you posted states "An API is part of a program that allows it to interface with another program.", which in no way limits it to fetching information.

 

(This isn't meant to come across rude  ;))

Link to comment
Share on other sites

Link to post
Share on other sites

"An application programming interface (API) is a protocol intended to be used as an interface by software components to communicate with each other."

It's not limited to it but it basically transfers data. And your fine. If  you thought that was rude than you must be very polite. :D

I think we should get another person's opinion on an API.

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

It's not limited to it but it basically transfers data. And your fine. If  you thought that was rude than you must be very polite. :D

I think we should get another person's opinion on an API.

 

It's your opinion, and I didn't mean to somewhat derail your thread with this, but yeah. :P

If anything, I would change your definition to say share information instead of fetch, because it's obviously not a one-way deal.

 

Overall, very nice post.

Link to comment
Share on other sites

Link to post
Share on other sites

Can someone pin this?

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

If you're going to say Netbeans for PHP, then you should probably also list it as HTML/CSS, because no one wants to use two different IDEs on the same project.

Link to comment
Share on other sites

Link to post
Share on other sites

Done

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

Also, this is just my opinion, but I'd rather use Visual Studio with C++ on Windows than use Code::Blocks. If I'm on Linux, the IDE I use is up for debate. But, in my opinion, even lacking a lot of C++11 feature support, Visual Studio is the more mature platform for C++ on Windows.

Link to comment
Share on other sites

Link to post
Share on other sites

Also, this is just my opinion, but I'd rather use Visual Studio with C++ on Windows than use Code::Blocks. If I'm on Linux, the IDE I use is up for debate. But, in my opinion, even lacking a lot of C++11 feature support, Visual Studio is the more mature platform for C++ on Windows.

Isn't that just for visual c++ though?

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

Wait, I thought of a way to solve this.

 

Instead of having one IDE per category, you can just list all of them that you know of under each, and leave it to the reader to decide which one they want to use.

Link to comment
Share on other sites

Link to post
Share on other sites

Isn't that just for visual c++ though?

 

The Express Edition, sure. But if you get Professional or higher, it's wrapped into the full package with C#, VB, F#, and ASP.NET.

Link to comment
Share on other sites

Link to post
Share on other sites

Wait, I thought of a way to solve this.

 

Instead of having one IDE per category, you can just list all of them that you know of under each, and leave it to the reader to decide which one they want to use.

Or if they rly want dont use an IDE and just get compilers for linux!!! (is this getting old?? sorry if it is just tell me :) )

Link to comment
Share on other sites

Link to post
Share on other sites

You should switch the c/c++ ide to some editor (geany/gedit) + linux terminal (plus gcc/g++) :p

i7 3770 - 16GB Patriot 1866 Mhz ddr3 - ASRock z77 extreme 6 - Radeon 7870 - Corsair 600T white - Kingston HyperX 120GB 

Link to comment
Share on other sites

Link to post
Share on other sites

Wait, I thought of a way to solve this.

 

Instead of having one IDE per category, you can just list all of them that you know of under each, and leave it to the reader to decide which one they want toI

I think that wouldn't be as helpful.

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

C++ for game development surely? As the industry standard, whether big or small. It should not be limited to 'crazy graphics'.

Link to comment
Share on other sites

Link to post
Share on other sites

C++ is sort of overkill IMO, but I will add it.

Do you want to know what grinds my gears?
The old forum.

Link to comment
Share on other sites

Link to post
Share on other sites

C++ is sort of overkill IMO, but I will add it.

 

Not really. It's not that big of overkill. C++ is the industry standard for games. If you're doing a simple 2D side-scroller, you could do it easily with XNA. And if you're doing a really low-poly 3D game, you could also get away with XNA. But once you go past a small polygon budget, you're looking at having to use C++ in order to squeeze out the performance.

 

Honestly, I don't think you should be saying that certain languages are used for certain tasks. While there are languages used commonly for certain tasks (C++ for games, for example), the overall goal of a good programmer should be to employ the right language for the right job.

Link to comment
Share on other sites

Link to post
Share on other sites

You should switch the c/c++ ide to some editor (geany/gedit) + linux terminal (plus gcc/g++) :P

I like how this guy thinks!! this is what ive been saying!!

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×