SunQuest
           Other Programming Languages
 
Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support | 
User Name:
Password:
Remember me
Go Back   Dev Shed ForumsProgramming Languages - MoreOther Programming Languages

Reply
Add This Thread To:
  Del.icio.us   Digg   Google   Spurl   Blink   Furl   Simpy   Y! MyWeb 
Thread Tools Search this Thread Rate Thread Display Modes
 
Unread Dev Shed Forums Sponsor:
Stay one step ahead of the competition. Evaluate and give feedback on some of the hottest web development tools on the market today. Make your opinion heard! Click Here
  #1  
Old January 10th, 2007, 03:23 PM
neobuddah's Avatar
neobuddah neobuddah is offline
cosmos curator
Dev Shed Novice (500 - 999 posts)
 
Join Date: Mar 2002
Location: Leeds, UK
Posts: 678 neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level) 
Time spent in forums: 1 Day 14 h 17 m 49 sec
Reputation Power: 8
Where to get help writing "real" applications?

I've been doing web development for 8 years now, straight out of school. I'm completely self-schooled (thanks Google!) and fully conversant with OO-PHP, JavaScript, XSL, XQuery, and a whole host of other web technologies. I think its time for me to start toying with some proper programming. I'm not sure about which language to use, but at the moment thats now what I'm having problems with.

Coming from a dynamic-language background, I've been working in a land very distant to the actual hardware i'm using. I think its time I start working with bits and bytes rather than requests and responses.

So, in order to get to grips with writing "real" code, I've decided that a good beginning app would be a database. I'm not talking building an Oracle clone here, just something to get me started with compilers, etc.

My problem now is... where do I start? Once I pick a language, I'm sure I'll be able to get to grips with the syntax, idioms, and features very quickly.

What I'm not sure on is where I can find some introduction into the things the manuals don't/won't cover - how the file-system really works, working with binary information, parsing input, and (importantly for a database system) storage models.

So, can anyone point me in the right direction?
__________________
R.T.F.M - Its the only way to fly...

"No matter what you do, or how good it is, someone will always ask for more features. Or to change the colour of something, then change their minds."

Personal:
experience// 8 Years Web Development
technologies// Standards-compliant, valid, & accessible (x)HTML/CSS, XML/XSL/XPath/XQuery/XUpdate, (OOP) PHP/(My)SQL, eXist/Xindice/XMLDBs
packages// Photoshop, Illustrator, Flash/Fireworks/Director
environment// FC2, MySQL, Lighttpd, PHP5, Mojavi/Agavi
site// //refactored.net/ (Coming soon...)
quote// Programming is the eternal competition between programmers who try to make apps more and more idiot proof and the universe that makes dumber idiots. So far, the universe is winning...

Reply With Quote
  #2  
Old January 11th, 2007, 08:51 AM
neobuddah's Avatar
neobuddah neobuddah is offline
cosmos curator
Dev Shed Novice (500 - 999 posts)
 
Join Date: Mar 2002
Location: Leeds, UK
Posts: 678 neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level) 
Time spent in forums: 1 Day 14 h 17 m 49 sec
Reputation Power: 8
nobody able to help me with this?

Reply With Quote
  #3  
Old January 11th, 2007, 09:05 AM
Oler1s Oler1s is offline
Contributing User
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: Jul 2006
Posts: 1,488 Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level) 
Time spent in forums: 4 Weeks 17 h 21 m 48 sec
Reputation Power: 440
We can help, just takes us time to reply. Give us time...
__________________
C/C++: Books, C FAQ, C++ FAQ, C/C++ Reference.
Python: Website, Beautiful Soup.

Reply With Quote
  #4  
Old January 11th, 2007, 05:28 PM
Oler1s Oler1s is offline
Contributing User
Dev Shed Beginner (1000 - 1499 posts)
 
Join Date: Jul 2006
Posts: 1,488 Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level)Oler1s User rank is Lieutenant Colonel (40000 - 50000 Reputation Level) 
Time spent in forums: 4 Weeks 17 h 21 m 48 sec
Reputation Power: 440
Quote:
Coming from a dynamic-language background, I've been working in a land very distant to the actual hardware i'm using. I think its time I start working with bits and bytes rather than requests and responses.
Normally when picking a language, I suggest picking a high level language first. But as you want to avoid high level languages, I recommend anything at the level of C# downwards. I would group C#, VB.NET, and Java, and perhaps C++ as a medium level language, while C as a low level language. There's more choices, but you'll probably want to start with something mainstream, so that's the list you get.

You'll want to make a choice as to how low level you get. With C, C++, you definitely have to be aware of what goes on in the computer. Memory management, dealing with buffers, threading, and so on are all laid bare before you. With C# and .NET languages, as well as Java, the details are hidden from you although they aren't abstracted too much. In general, C and C++ are kings of system level programming and any high performance code, while .NET and Java are taking over applications development and most general programming scenarios.

Quote:
So, in order to get to grips with writing "real" code, I've decided that a good beginning app would be a database. I'm not talking building an Oracle clone here, just something to get me started with compilers, etc.
It's a worthwhile choice, but don't expect to start coding this right away. Since you're learning a low level language, you'll spend significantly more time learning how to use your language. Also, you may have to learn algorithms that you never had to or even could have implemented before. In short, factor in some time for your learning.

Quote:
My problem now is... where do I start?
By figuring out what language you want to use. I've shown you the pool of languages to choose from. You'll want to read up on the various languages and see which one seems most suitable for you. They all can be considered compiled languages, with C and C++ being natively compiled (Java and .NET compile to an intermediate language).

Quote:
What I'm not sure on is where I can find some introduction into the things the manuals don't/won't cover - how the file-system really works, working with binary information, parsing input, and (importantly for a database system) storage models.
The best way to learn is to write applications that deal with those topics, or approach topics as if you were writing an application for them. I found that if a resource wasn't geared for programmers, it inevitably was uselessly superficial. Too many details get left out. Want to learn how filesystems work? Write applications that work with the native filesystem and perhaps write your own pseudo-filesystem. Working with binary information? Write applications that handle binary files. Parsing input? Try taking arbitrary and malformed data and trying to sort it out. Like webpages. More importantly, there is no better test of your knowledge than a working computer program. It's easy to see if it works properly (just try running/using your program), and also reasonably easy to see if it works efficiently (profile or just use the program).

It's important that you learn the language properly. If you spend some time on C++ forums, you'll find us quite often correcting problems in how people use the language. Forget algorithms, they don't have the basics down correct. That's why, find out what the best resources for a language is. With C++ for example, it's in a selection of books written by the experts.

Reply With Quote
  #5  
Old January 13th, 2007, 03:12 AM
neobuddah's Avatar
neobuddah neobuddah is offline
cosmos curator
Dev Shed Novice (500 - 999 posts)
 
Join Date: Mar 2002
Location: Leeds, UK
Posts: 678 neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level)neobuddah User rank is Corporal (100 - 500 Reputation Level) 
Time spent in forums: 1 Day 14 h 17 m 49 sec
Reputation Power: 8
Quote:
Originally Posted by Oler1s
Normally when picking a language, I suggest picking a high level language first. But as you want to avoid high level languages, I recommend anything at the level of C# downwards.


I was thinking about trying C# (or mono - I'm on ubuntu). I've spent a lot of my free time looking at languages, and because I don't want to mess about with pointers/memory management I looked at languages to do that for me. D (which is C++ minus the gripes and has garbage collection) and Erlang (because its functional, which I'm quite comfortable with after using XSL and XQuery) seem good choices for me, and I'll probably go with the latter.

Quote:
..you'll spend significantly more time learning how to use your language. Also, you may have to learn algorithms that you never had to or even could have implemented before. In short, factor in some time for your learning.


This is something I realize and am comfortable with.

I appreciate your comments and thank you for your time. I think I might have asked the wrong question though.

The main thing I'm looking for is where to start to get an understanding of the computer science/theory which is behind all languages - which would be i/o, storage models, filesystems, sockets. I know a little about sockets through working with PHP, but I don't think I know enough.

Wikipedia is great, but it rarely gives links to what I need - examples. What I tend to find are very light articles ("a filesystem is somewhere you put your files") or scientific papers (just filled with algebra). There's little intermediate literature to get from the former to the latter easily (or without moving to the US and spending 10 years at uni).

Where would I find that intermediate material? What sort of terms should I be throwing at Google?

Reply With Quote
  #6  
Old January 13th, 2007, 04:40 AM
displeaser's Avatar
displeaser displeaser is offline
Periodically energetic Perler
Dev Shed Regular (2000 - 2499 posts)
 
Join Date: May 2005
Location: Dublin, Ireland
Posts: 2,266 displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)displeaser User rank is Colonel (50000 - 60000 Reputation Level)  Folding Points: 76661 Folding Title: Intermediate FolderFolding Points: 76661 Folding Title: Intermediate FolderFolding Points: 76661 Folding Title: Intermediate FolderFolding Points: 76661 Folding Title: Intermediate Folder
Time spent in forums: 4 Weeks 5 h 23 m 13 sec
Reputation Power: 532
Quote:
Originally Posted by neobuddah
D (which is C++ minus the gripes and has garbage collection) and Erlang (because its functional, which I'm quite comfortable with after using XSL and XQuery) seem good choices for me, and I'll probably go with the latter.
Pm me when your playing erlang, i'm having a little play with it to at the moment, but nothing as complex as a database yet.

Quote:
Originally Posted by neobuddah
Where would I find that intermediate material? What sort of terms should I be throwing at Google?
Couple of things you could do is look at some college courses on database programming (i'm sure theres some out there) and see if they have course recommended reading lists, they may also have notes on-line. A trip and search to sourceforge might reveal a database project you could then go through the source code which may shed more light on things.

Good luck with your project.
Displeaser
__________________
Vi Veri Veniversum Vivus Vici.

Reply With Quote
  #7  
Old January 15th, 2007, 08:35 AM
jamieB jamieB is offline
Contributing User
Dev Shed Novice (500 - 999 posts)
 
Join Date: Nov 2002
Posts: 592 jamieB User rank is Sergeant (500 - 2000 Reputation Level)jamieB User rank is Sergeant (500 - 2000 Reputation Level)jamieB User rank is Sergeant (500 - 2000 Reputation Level)jamieB User rank is Sergeant (500 - 2000 Reputation Level)jamieB User rank is Sergeant (500 - 2000 Reputation Level) 
Time spent in forums: 2 Days 1 h 56 m 16 sec
Reputation Power: 17
Quote:
Originally Posted by neobuddah
Wikipedia is great, but it rarely gives links to what I need - examples. What I tend to find are very light articles ("a filesystem is somewhere you put your files") or scientific papers (just filled with algebra). There's little intermediate literature to get from the former to the latter easily (or without moving to the US and spending 10 years at uni).

Where would I find that intermediate material? What sort of terms should I be throwing at Google?

Try SICP, either as a book or series of videos (discussed here fairly often) especially as you're interested in fundamentals. If you stick with it you will learn an enormous amount. It will show you a very clean and powerfully expressive style, high level but more than capable of bit-twiddling when that's what you need to do.

SICP uses scheme throughout. Don't be put off if you hadn't intended learning scheme - you don't need to know much to follow the examples and do the exercises and you won't regret it.
Comments on this post
Schol-R-LEA agrees: SICP is great, but you need to be patient - it is very abstract, and you need to be mindful for it
to help - the programming equivalent of tai chi, very internal and esoteric.

Last edited by jamieB : January 15th, 2007 at 08:37 AM.

Reply With Quote
  #8  
Old January 21st, 2007, 11:47 PM
CyBerHigh CyBerHigh is offline
Contributing User
Dev Shed Newbie (0 - 499 posts)
 
Join Date: Jun 2004
Posts: 430 CyBerHigh User rank is Sergeant (500 - 2000 Reputation Level)CyBerHigh User rank is Sergeant (500 - 2000 Reputation Level)CyBerHigh User rank is Sergeant (500 - 2000 Reputation Level)CyBerHigh User rank is Sergeant (500 - 2000 Reputation Level)CyBerHigh User rank is Sergeant (500 - 2000 Reputation Level) 
Time spent in forums: 4 Days 6 h 46 m 57 sec
Reputation Power: 20
Send a message via AIM to CyBerHigh
If you are wanting to get a good understanding of computer programming in a since of computer theory and make it more of a science then I highly recommend a lisp. Scheme is nearly perfect for learning computer theory, which is why it is used in sicp. However with modern compilers, schemes such as gambit can produce code that is as fast if not faster than a pretty good c programmer. With Scheme you will learn a lot about programming and ideas in general about computers.

I have been using scheme for about a year now and I am a really big fan of it, I have recently gone over to common lisp a bit more because of the readily available library's for it. That is one major downfall to scheme is that there is not much already written for it or there is and it is hard to find. I am using SBCL for common lisp if your interested, which is also another great language to look into and probably has just the same benefit of learning scheme.

I have used erlang and I got pretty far with it, however it just didn't do things that I wanted it to do. It was lacking things like true string support and a powerful macro system that just turned me away from it. However with most modern lisps I am able to develop large apps like you would with erlang with multitasking. Even gambit can hold millions of threads. So the reason for me to continue using erlang was limited. I would not recommend it as a language to actually be used, I really do like its pattern matching conditions and message passing threading. Other than that its a very limited language.

I would highly recommend not learning c or c++ as your first language, it will take you a long time to learn things and you will probably pick up a lot of bad habits that are prone to new c or c++ developers. I also don't recommend D or C# (with mono). D because it really is not complete and isn't used really anyware and c# because mono is not ready for production use and I am just not a fan of anything m$. I feel c# could be a good language however, I just think unless M$ helps projects make ways to interface with c# and such, like mono. C# will be limited to only windows and why just code for windows? I am a fan of java, it has its ugliness but all in all its a pretty solid language and I would much rather people use that than c#

But I still believe that you should first learn scheme or common lisp. If you would like some more advise on which on is better you can pm me or something.
__________________
My Site:
http://www.coryhardman.com

Reply With Quote
  #9  
Old January 22nd, 2007, 03:57 AM
jamieB jamieB is offline
Contributing User
Dev Shed Novice (500 - 999 posts)
 
Join Date: Nov 2002
Posts: 592 jamieB User rank is Sergeant (500 - 2000 Reputation Level)jamieB User rank is Sergeant (500 - 2000 Reputation Level)jamieB User rank is Sergeant (500 - 2000 Reputation Level)jamieB User rank is Sergeant (500 - 2000 Reputation Level)jamieB User rank is Sergeant (500 - 2000 Reputation Level) 
Time spent in forums: 2 Days 1 h 56 m 16 sec
Reputation Power: 17
Quote:
Originally Posted by CyBerHigh
I would highly recommend not learning c or c++ as your first language, it will take you a long time to learn things and you will probably pick up a lot of bad habits that are prone to new c or c++ developers.


Right on. I can't remember where the quote came from but in some paper it was said "it took the students 5 days to get lisp, except those who had never used C, who got it in two." Your mind is moulded to the shape of a programming language by the act of using it and it can be hard work to step back from that.

Reply With Quote
Reply

Viewing: Dev Shed ForumsProgramming Languages - MoreOther Programming Languages > Where to get help writing "real" applications?


Thread Tools  Search this Thread 
Search this Thread:

Advanced Search
Display Modes  Rate This Thread 
Rate This Thread:


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
View Your Warnings | New Posts | Latest News | Latest Threads | Shoutbox
Forum Jump


Forums: » Register « |  User CP |  Games |  Calendar |  Members |  FAQs |  Sitemap |  Support |