Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

tips for learning from opensource [closed]

Tags:

open-source

Besides practice(practice and more practice) reading books and forums, analyzing others people code is a must in order to have a career in this field.

The problem is that I'm a student(feels like always on learning stage) but sometimes i can't solve the problems by my own. I was thinking that on public open source repositories might be the answer I'm looking for.

My question is how can i find the answer to some of my problems in open source projects/community? Do you have any tips to share for me?

ty

like image 375
dole doug Avatar asked Jun 06 '10 11:06

dole doug


People also ask

Which is better closed source or open source?

With closed source software (also known as proprietary software), the public is not given access to the source code, so they can't see or modify it in any way. But with open source software, the source code is publicly available to anyone who wants it, and programmers can read or change that code if they desire.

Can you close source an open source project?

Yes, it is possible to make an open source project into a closed source project. The copyright holder can change the license of a project at any time, or cease to distribute source code of new releases. New releases can therefore be made closed source.

Is closed source safe?

You do have a choice between open-source and closed-source In contrast, closed-source proponents argue that their codebases are more secure and less vulnerable to hacking. Further, closed-source issues may be handled more effectively by a core team due to its system type.


2 Answers

A few things for learning problem solving skills related to software developement (once you've found a project that you are interested in that is also written in a language you feel comfortable with) are:

  • Sign up to the mailing list
  • Lurk about on the project's IRC channel (assuming they have one)
  • Read through bug repots (the open ones to try solve them, and the closed ones to see how others solved them).

and of course discuss discuss discuss, if you think you have a basic grasp of the problem at hand but need clarification on some issues don't be afraid to ask your peers.

Hope this was of at least some help, Welcome to the open source world and good luck!

like image 176
cjh Avatar answered Sep 22 '22 02:09

cjh


Analyzing others people code is a must... I'm a student... public open source repositories might be the answer?

The problem with open source is that the quality varies too much. (There's lots of my own code sitting in public open-source repositories that I wouldn't want anyone to try to see, let alone learn from. And yet some of my code, the code I have lavished time and attention on, is very good—or so my peers tell me.) So you don't want to pick an open-source project and learn from J. Random Hacker. You want to learn from the best hackers.

Here are some strategies:

  • If you're a student, you have acccess to teachers. One or two of them may have an idea about software. Ask them what is worth reading—what you will learn from.

  • Look at conferences and journals that publish about software: SIGPLAN, SIGSOFT, USENIX, Software—Practice & Experience, Journal of Functional Programming. Read about systems that look interesting to you. Write to the authors and ask them if they recommend you try to learn from their code. Listen carefully to what they say; most of the best hackers know they can do better. If you extract a grudging admission, with a bunch of caveats, that maybe there is something to learn there, you've found the right person.

  • If you're learning C, a lot of the old Bell Labs stuff is really worth looking at (and a lot isn't). I admire the work of Jon Bentley, Brian Kernighan, and Rob Pike, among many others. You can download and read the source of the original awk, or Pike's interpreter for Newsqueak.

  • Popularity does not correlate with suitability for learning. The GNU tools are very popular, but almost anyone who has seen both will tell you that you will learn more from the Bell Labs versions. And Linux is very popular, but people I trust who work in the field tell me that if you want to learn about operating systems, you should study BSD. I myself work in the field of compilers and can tell you that if you want to write a compiler in C, the model to emulate is the little-known lcc, not the wildly popular gcc.

Finally, I highly recommend the work of Richard Bird, Hans Boehm, Ralf Hinze, and Phong Vo (two Haskell programmers and two C/C++ programmers).

like image 35
Norman Ramsey Avatar answered Sep 18 '22 02:09

Norman Ramsey