Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,152,654 members, 7,816,682 topics. Date: Friday, 03 May 2024 at 03:08 PM

Programmer In The House Help Me Out. - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / Programmer In The House Help Me Out. (751 Views)

Dear Programmer In Nigeria: How Much Is Your Salary? / Who Is The Best Programmer In Nairaland? / What Is The Average Salary Of A Php Programmer In Lagos (2) (3) (4)

(1) (Reply) (Go Down)

Programmer In The House Help Me Out. by Avast(m): 8:56am On Dec 08, 2010
Please i want to learn programming but i dont know which one to start with.
Re: Programmer In The House Help Me Out. by mexzony: 4:52pm On Dec 08, 2010
if you want to learn.ask your self
“What do I want to accomplish?”

First you should start to think about what you want to create when coding. Do you want to make cool websites, and web applications, or maybe a quick windows application to calculate the amount of paint needed for a room? What about creating video, flash, and 3D graphics. There are languages designed to do all this and more! You just need to figure out what your needs and wants are. Do some research on popular languages and find out what types of programs other people have written with them.

KEEP IN MIND !

When you first start coding it is more important to learn how to program then it is to learn the library's or modules of the language. Focus on the basics and make sure you understand them before moving on.


“Should I worry about compatibility & portability?”

The short answer is: no that is not likely at this stage. Since you are just starting out you will most likely just pick a language that will run on your current operating system.
However in the future you may need or want your application to work on multiple platforms such as Windows, Linux, and Mac.

“Is the language well documented?”

Are you going to be able to find a lot of information about your language? What types of books, internet tutorials, and official documentation are there available for your language? It is always nice to have a good community around the language as well. Most on-line communities are based on forums, IRC, and mailing lists. Remember that Google is your friend. Just look up your language on Google to find tutorials, and on-line community's, check out Borders or Amazon dot com for books.

“What level of architecture do I want to code in?”

Computer do not understand the source code we write. They only understand machine code. Machine code can be thought of as binary, just two states 0 or 1 or switches that are either on or off. We could say there are about 4 different levels of programming languages. Low, middle, high, and very high level. When a language is said to be a low level language it means that the source code is more closely related to the machine code. This means the source is a bit more cryptic an complex, but you have very fine control and a lot of power over your program. If a language is high level it means it is closer to human readable language and it is much easier to get common (and some uncommon) things done. Though some of the finer details are hidden from the programmer. The benefits of a lower level language is speed and power. The problem is you wouldn't want to write an entire game in a low level language because it would be large, complex, and hard to understand.

“Compiled or interpreted?”

When a program is said to be “compiled” it means that the source code is passed threw a special program called a compiler before it can be ran. The compiler turns the human readable source code directly into machine language also known as a “binary file” or “.exe”.

When a program is said to be “interpreted” it means the source code is passed to a special program appropriately called an interpreter during run time. This means you just have to save a scblockedript with an appropriate file extension and run it. The source code is compiled dynamically on the fly during run-time. So compile time is run time. The pro is you can create programs very quickly and save a lot of time. The con is you lose some speed and power in your programs. Compiled programs are naturally faster the interpreted ones. Don't let that put you off though, many interpreted languages are more then powerful enough for your everyday needs.

Some languages are / or can be “byte compiled”. This means that when the source is compiled it is not turned directly into machine language. Instead it is turned into an “intermediate language” called byte code. Byte code is on a lower level then the source but is not ready to be ran by the computer. Byte code is then ran on some form of virtual machine were the byte code is compiled, garbage collected, and more. Some popular virtual machines are: the java virtual machine, .NET platform (pronounced “Dot Net”), and mono platform.

Side notes

Do not stress to much over what language to pick. Pick a language that will help you learn to program, and accomplish your tasks. Don't worry about what’s cool or the newest thing go with what works for you. Odds are you are going to be learning new languages later on anyways. So as long as you have the basic programming concepts, and techniques down you will be able to learn a new language more easily. The most important part is to have fun! Enjoy what you are doing or why do it at all?

Language Reviews

I am going to give a short list of programming languages that I think beginners will find useful and will learn the most from.


XHTML
Type: Markup Language
Geared for: Websites
Difficulty: Very Easy
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
documentation: No lack of documentation. I find that the w3school tutorials cover just about everything, so it is unlikely you will need a book.
Links: www.w3schools.com
Notes: All you need is a good text editor. However there are also more complex programs like Dreamweaver to help simplify the creation of XHTML pages.

CSS
Type: Style Sheets
Geared for: Websites
Difficulty: Easy
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
documentation: Lots of great on-line tutorials. You might find buying a book helpful as it will explain more about design.
Links: www.w3schools.com
Notes: All you need is a good text editor. However there are also more complex programs like Dreamweaver to help simplify the creation of CSS files.


= Web Applications =
Web applications add interactivity to a website such as pop up boxes, log-in forms, shout boxes, games, and more.

Javascblockedript
Type: Interpreted / scblockedripting
Geared for: Web Applications
Difficulty: Easy - Mild
Compatibility: Works with modern browsers (Firefox, Chrome, Safari, Explorer)
documentation: Great on-line tutorials, but you may find a book helpful.
Links: www.w3schools.com
Notes: This gives web designers a scblockedripting language to embed in there web pages. Can create pop up boxes, validate XHTML forms, and more. Code is executed by the browser.

PHP
Type: Interpreted / scblockedripting
Geared for: Web Applications
Difficulty: Mild
Compatibility: Code is ran on server
documentation: Good on-line tutorials, may want a book for more complete learning process.
Links: www.w3schools.com
Notes: Because code is executed on the server the user can not view the source code, this adds a level of protection and security for things like login forms and online transactions.


= Databases =
Databases allow you to store tons of information in a logical way. In software development you can use them to keep track of websites members, scores in a game, employes on a pay roll, and more.

SQL
Type: Structured Query Language
Level: Very High
Geared for: Databases
Difficulty: Mild - Hard
Compatibility: Used with many major database management systems (MySQL, PostgreSQL, Access, Oracle, SQLite, and more )
documentation: Great documentation, many books, and on-line tutorials.
Links: www.w3schools.com
Notes: SQL is a standard language for accessing databases. There are many different versions of the SQL language. However, to be compliant, they all support at least the major commands (such as SELECT, UPDATE, DELETE, INSERT, WHERE) in a similar manner.



= Desktop Applications =

VB.net
Type: Byte Compiled
Level: High
Geared for: .NET or Mono platforms
Difficulty: Mild
Compatibility: .NET on Windows, or Mono on Windows, Linux, & Mac
documentation: .NET is well supported by Microsoft and there are many books available. Mono conforms to most of .NET standards.
Links: http://msdn.microsoft.com/en-us/vbasic/default.aspx
http://www.mono-project.com/VisualBasic.NET_support
Notes: VisualBasic.NET is a different language in the sense of syntax and code blocks. Reserved words such as Dim , As, or Begin , End are used instead of symbols like in C style languages. For this is the reason this language ended up on the list.

C#
Type: Byte Compiled
Level: High
Geared for: .NET or Mono platforms
Difficulty: Mild
Compatibility: .NET on Windows, or Mono on Windows, Linux, & Mac
documentation: No lack of documentation to speak of.
Links: http://msdn.microsoft.com/en-us/vcsharp/aa336809.aspx
http://www.microsoft.com/express/vcsharp/
http://mono-project.com/Main_Page
Notes: Great new language developed by Microsoft. Often compared with Java, though it is my opinion that C# is superior for windows development. Also works well with the Mono platform for linux.

C / C++
Type: Compiled
Level: Middle
Geared for: Desktop applications.
Difficulty: Hard
Compatibility: There are compilers for all platforms.
documentation: Tons!! Books, on-line, people, just tons!
Links: http://www.cplusplus.com/doc/tutorial/
http://www.cprogramming.com/
Notes: It is now an older language, but still very useful when you need to squeeze a lot of power into a program.


= Mixed (Desktop, Web Applications, Mobile Phones) =

Java
Type: Byte Compiled
Level: High
Geared for: Portability
Difficulty: Mild - Hard
Compatibility: Cross platform
documentation: Well documented
Links: http://java.sun.com/docs/books/tutorial/
Notes: Good for teaching object oriented programming. Many library's, making development of complex programs more easy.

Python / Jython / IronPython
Type: Interpreted / Byte Compiled
Level: Very High
Geared for: Everything, and RAD (Rapid, Application, Development)
Difficulty: Easy
Compatibility: Cross platform
documentation: Very well documented
Links: http://www.python.org
http://www.jython.org/
http://ironpython.net/
Notes: Fantastic language for beginners! The Python interpreter is written in C. The byte code is specific to the python platform. Jython compiles to Java byte code and runs on the Java Virtual Machine. IronPython compiles to CIL (common intermediate language) for .NET or Mono platforms.


= 3D Graphics or flash games =

Processing
Type: Byte Compiled
Level: Very High
Geared for: 3D images, animation, and interactions.
Difficulty: Mild
Compatibility: Java platform
documentation: Well documented
Links: http://processing.org/
Notes: A fun and interesting language to do 3D work.

Actionscblockedript
Type: interpreted
Level: Very High
Geared for: 2d Flash animations and Flex 3D
Difficulty: Mild
Compatibility: Works were ever flash or flex is compatible.
documentation: Normal
Links: http://www.actionscblockedript.org
Side notes: This is a popular language for this specific task.


= Embedded Systems =
Washing machines, tv's, watches, toasters, you name it!

Assembly
Type: Assembled
Level: Low
Geared for: Special niches when needed
Difficulty: Very Hard
Compatibility: Each processor architecture has Its own version.
documentation: Normal
Links: http://webster.cs.ucr.edu/
Side notes: If you learn assembly for one architecture, than it isn't too difficult to code on different ones. You just have to learn a new instruction set.
for me you could start with C# or the one i currently use Euphoria programming language which can be found on rapideuphoria.com
Remember to have fun and learn all you can!.
Re: Programmer In The House Help Me Out. by Avast(m): 6:42am On Dec 09, 2010
Am very grateful @mexzony. Any other opinion from anybody?
Re: Programmer In The House Help Me Out. by naijaswag1: 1:01pm On Dec 09, 2010
I can sense the confusion and inability to make sense of all the contents on all those websites.The best place to start if you want to learn programming is to appraise yourself on what you know about computer science in general.You cannot just jump from anywhere and think that you can just learn how to program.I am not saying that you cannot learn if you don't know anything about computers.But it will be much easier if you are coming from a physical sciences or engineering background and you have to be good at your maths but not necessarily excellent.And if you are coming from a computer science background,it is left for you to build on what you already know.I mean the Basic,Pascal and Algol that you are taught in school.Although some people get lucky to be taught more that and are given introductory courses in high level programming languages such as C++,Java et cera.

That being said,you need to consider how you want to learn programming.Are you ready to pay IT training institutes like AfriHUB,NIIT,Aptech some hundreds of thousands to learn or are you ready to go it on your own.If the former is your resolve and you can fund it,you can inquire from those who have studied in these institutions and then take your decisions.If you are ready to go it the hard way by teaching yourself you will have to be ready dive into the deep.When you have decided on the manner of study,it is now time to decide on the language you want to learn.There are over 100 programming languages to chose from.You can look up list or programming languages in wiki.The language you will choose will depend on if you can find an institute or person who can tutor you on that language.But if you want to learn on your own,any language could do because there tonnes of materials on the web to assist you and virtually every problem you will encounter will have been encountered by someone else before and a solution will exist.

As for me I use Java and I am not like many Nigerians who are proponents of certain languages.My grouse with all of them is that these people are just end users(client programmers) who make use of API's(application programming interfaces or libraries).None of them can invent a language or even make meaningful contribution to its development and 80% of them are making less than 10million naira per annum from these languages that they have become its apostles and I don't see any reason they will continue to shout from the roof tops that people should stay away from certain languages.No language is not important and I bet you if you know any language very well.You will make a decent living from it and it will be easy for you to learn a new one.That being said,it will be good to learn a language that is relevant in your place of domicile so that you can survive with it before reaching out to the outside world.
Re: Programmer In The House Help Me Out. by kodewrita(m): 3:09pm On Dec 09, 2010
play with html. the joy of writing something and seeing immediate results will draw you in.

deliberately build a small website with it and then learn how to use javascript to enhance it.

Now some candid advice: Stay and become a master in just those two then set your mind free to branch out in any direction. you will be amazed at what you can do.

In truth: they are almost all the same and once you learn one, you can pick up the rest. all you need is to know the differences between them.
Re: Programmer In The House Help Me Out. by Avast(m): 3:24pm On Dec 09, 2010
@all, I LOVE YOU ALL. THANKS
Re: Programmer In The House Help Me Out. by kambo(m): 1:56am On Dec 10, 2010
@naija swag

programmers dont need to be at same skill level to mke use
of their skills . e.g java language specification and implementation
was written by programmers who are on different levels from
someone picking up java using java in 21 days book.

u make 100 million /yr. what of those who can programme expertly
but can't do the business side properly.
and the economy dictates your earnings to an extent.
e.g
if you're in an industrialized area its easier than in a rural area.

(1) (Reply)

Mastermind Series / Clarity Infineon New OS Beta Version Available / Where To Find Css And Html Tutorial

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 42
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.