You are not logged in.

#26 2009-12-09 23:52:54

Anikom15
Banned
From: United States
Registered: 2009-04-30
Posts: 836
Website

Re: How can I be a better programmer?

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/port

I have no idea what you just said.


Personally, I'd rather be back in Hobbiton.

Offline

#27 2009-12-09 23:56:34

zowki
Member
From: Trapped in The Matrix
Registered: 2008-11-27
Posts: 582
Website

Re: How can I be a better programmer?

Anikom15 wrote:
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/port

I have no idea what you just said.

Pick up a book on MySQL and you will. big_smile


How's my programming? Call 1-800-DEV-NULL

Offline

#28 2009-12-11 02:14:57

dkcampbell
Member
Registered: 2009-04-10
Posts: 11

Re: How can I be a better programmer?

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

#29 2009-12-11 03:17:42

nixpunk
Member
Registered: 2009-11-23
Posts: 271

Re: How can I be a better programmer?

Xyne wrote:

Grow a beard.

LOL.  I tried that and it didn't work.  wink

Offline

#30 2009-12-11 03:25:57

Tyriel
Member
From: Melbourne, Australia
Registered: 2009-01-20
Posts: 161
Website

Re: How can I be a better programmer?

nixpunk wrote:
Xyne wrote:

Grow a beard.

LOL.  I tried that and it didn't work.  wink

Growing the beard or becoming a better programmer?


The software required Windows XP or better, so I installed archlinux.

Offline

#31 2009-12-11 05:31:05

zowki
Member
From: Trapped in The Matrix
Registered: 2008-11-27
Posts: 582
Website

Re: How can I be a better programmer?

Tyriel wrote:
nixpunk wrote:
Xyne wrote:

Grow a beard.

LOL.  I tried that and it didn't work.  wink

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

#32 2009-12-12 00:16:16

nixpunk
Member
Registered: 2009-11-23
Posts: 271

Re: How can I be a better programmer?

Tyriel wrote:
nixpunk wrote:
Xyne wrote:

Grow a beard.

LOL.  I tried that and it didn't work.  wink

Growing the beard or becoming a better programmer?

The latter, LOL!

Offline

#33 2009-12-12 10:25:17

Blµb
Member
Registered: 2008-02-10
Posts: 224

Re: How can I be a better programmer?

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 wink
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 tongue

Learn about portability
- Of course, don't use java for this (would be cheating tongue), 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 wink

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 tongue
Functional programming is something really amazing smile

Play with:
- Brainfuck, Ook, LOLcode, etc.

Learn OpenGL (3)
- And hunt down and convert people who use DirectX tongue


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

#34 2009-12-12 15:55:24

zowki
Member
From: Trapped in The Matrix
Registered: 2008-11-27
Posts: 582
Website

Re: How can I be a better programmer?

Blµb wrote:

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

#35 2009-12-15 08:44:10

eviltoaster
Member
Registered: 2009-09-23
Posts: 17
Website

Re: How can I be a better programmer?

Anikom15 wrote:

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

#36 2009-12-15 10:05:37

PirateJonno
Forum Fellow
From: New Zealand
Registered: 2009-04-13
Posts: 372

Re: How can I be a better programmer?

eviltoaster wrote:

K & R ????

please hand in your geek card on the way out tongue


"You can watch for your administrator to install the latest kernel with watch uname -r" - From the watch man page

Offline

#37 2009-12-15 17:05:30

eviltoaster
Member
Registered: 2009-09-23
Posts: 17
Website

Re: How can I be a better programmer?

PirateJonno wrote:

oh ofc, i missed the C in his text.


arrowhead south backbone

Offline

#38 2009-12-16 19:19:45

Cyrusm
Member
From: Bozeman, MT
Registered: 2007-11-15
Posts: 1,053

Re: How can I be a better programmer?

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

Board footer

Powered by FluxBB