You are not logged in.
It seems so obvious, but still I mention it:
- the database is for data, you program source is for computer instructions. Do not mix! No hardcoded data in your source, and no META-data in your database.
- do not try to include the factor "time" in your datamodel
- remember the "single point of definition" at all time
- know your data
- while your designing & coding take into account: it must be easy to deploy/maintain/port
I have no idea what you just said.
Personally, I'd rather be back in Hobbiton.
Offline
dr_te_z wrote:It seems so obvious, but still I mention it:
- the database is for data, you program source is for computer instructions. Do not mix! No hardcoded data in your source, and no META-data in your database.
- do not try to include the factor "time" in your datamodel
- remember the "single point of definition" at all time
- know your data
- while your designing & coding take into account: it must be easy to deploy/maintain/portI have no idea what you just said.
Pick up a book on MySQL and you will.
How's my programming? Call 1-800-DEV-NULL
Offline
Since you already know how to program I would suggest picking up a book that explains common data structures and algorithms. Knowing if an array based list or a linked list is better in a given situation is fundamental. So is the ability to look at your own code, and come up with a decent guess as to its running time.
Offline
Grow a beard.
LOL. I tried that and it didn't work.
Offline
Xyne wrote:Grow a beard.
LOL. I tried that and it didn't work.
Growing the beard or becoming a better programmer?
The software required Windows XP or better, so I installed archlinux.
Offline
nixpunk wrote:Xyne wrote:Grow a beard.
LOL. I tried that and it didn't work.
Growing the beard or becoming a better programmer?
You guys probably have not seen this post of mine:
http://bbs.archlinux.org/viewtopic.php? … 91#p652191
How's my programming? Call 1-800-DEV-NULL
Offline
nixpunk wrote:Xyne wrote:Grow a beard.
LOL. I tried that and it didn't work.
Growing the beard or becoming a better programmer?
The latter, LOL!
Offline
There are many things you can do. And depending on who you ask you'll get different answers. It also depends on what kind of programming you want to go fore: distributed systems, graphics programming, low-level programming focusing on different kinds of efficiency (speed, memory use etc., which btw. can come in handy today, too because some optimizations can also speed up high level programs noticably, and some of those situations are easier to recognize if you have some experience with lower level programming).
Basically, you should get an idea of everything available to you:
Learn assembler
- it increases a way of thinking that you don't easily develop when learning only high-level programming languages, which can help you create new, understand complex, and translate algorithms you might want to use.[/list]
Learn C
- especially: get past the level where you go around telling people that pointers are evil, they're not, and "evil" is such a useless word in this context. Every aspect of every programming language, comes from a concept that at least has been important at some point in the development of programming languages, and it makes no sense to skip any of it, even if it doesn't help you with your high-level target-language you want to learn. Every experience is worth having, they help!
Learn C++
- Try to use C++ without much C in it, then also try mixing C++ and C. Forcing yourself not to use C in there is usually a drawback because sometimes C can be faster, but still, the C++ way usually has a newer concept of programming which will give you a completely different view of things.
Learn Java
- I usually hate java, but some aspects of it are quite interesting, and every language is worth knowing anyway. Besides, it is very portable
Don't use it for high-performance 3D graphics games though because even though java and todays CPUs and GPUs are very fast, some things still tend to hit the boundaries of todays hardware.
Learn common algorithms (for searching and sorting, like: Knuth-Morris-Pratt algorithm and its successors, Quicksort, Bubblesort etc.)
- Of course you should also be able to create your own, but especially when it comes to searching and sorting a lot of work has been done in the past, and it is very much worth knowing about it. Try to understand them and implement them in multiple languages, try to compare the runtime in different languages.
Learn about low level network programming (sockets etc.)
- C is a good language to start here, although java or others work as well. But in C you can directly use file descriptors and such. It is useful to get to know system programming.
Learn about multithreading and try using it
- Many things can be made much faster this way. Besides, with multicores nowadays it would be stupid to not touch threads
Learn about portability
- Of course, don't use java for this (would be cheating ), because that doesn't teach you anything here since it is portable anyway, BUT: Try to create a C or C++ program that uses sockets, sound and thread and make it compile on windows, linux and mac OSX. Think about which libraries you should use, about how to compile it (autotools, manually writing a Makefile) etc....
Learn about distributive programming
- I'd suggest to us Java RMI, or the ZeroC ICE middleware here. Java is probably easier though. This will give you an impression of what is necessary to create tools which work efficiently on multiple hosts. Also it makes you think about how google's search and especially google wave cope with so many users at the same time
Learn python
- Compared to the other languages mentioned above it contains many new concepts which let you think about completely new ways of writing algorithms. You have list comprehensions, tuples and lots more.
Also learn the python C api and embed it into a program.
Learn a functional language (haskell or erlang)
- Personally I'd say learn both. Erlang has some interesting features for distributed programming
Functional programming is something really amazing
Play with:
- Brainfuck, Ook, LOLcode, etc.
Learn OpenGL (3)
- And hunt down and convert people who use DirectX
You know you're paranoid when you start thinking random letters while typing a password.
A good post about vim
Python has no multithreading.
Offline
Learn python
- Compared to the other languages mentioned above it contains many new concepts which let you think about completely new ways of writing algorithms. You have list comprehensions, tuples and lots more.
Also learn the python C api and embed it into a program.
Python for newbies:
http://www.themaemo.com/python-for-newbies/
How's my programming? Call 1-800-DEV-NULL
Offline
I alreasy know how to program . . . in Python, and C. I finally finished K & R (Though not all the exercises, some of those are really hard -- like that histogram).
K & R ????
arrowhead south backbone
Offline
K & R ????
"You can watch for your administrator to install the latest kernel with watch uname -r" - From the watch man page
Offline
eviltoaster wrote:K & R ????
oh ofc, i missed the C in his text.
arrowhead south backbone
Offline
Project Euler and the Python Challenge were both fun,
from these I learned that there are generally 2 ways to solve any problem, one that takes ten minutes and maxes out all your processors and memory but still eventually gets you the right answer, and the right way. finding the right way is the real fun part
Last edited by Cyrusm (2009-12-16 19:36:28)
Hofstadter's Law:
It always takes longer than you expect, even when you take into account Hofstadter's Law.
Offline