UbuntuDevForTheYouth
Dev Week -- Ubuntu Development for the Youth -- bilal -- Tue, Aug 28th, 2012
1 [17:58] <bilal> Thanks to you too, ogra, that was an informative session
2 [17:59] <ogra> if you have any more questions etc, i'm available in #ubuntu-arm around european business hours usually
3 [17:59] <ogra> and many thanks to the organizers of this event, you guys do an awesome job !
4 === ChanServ changed the topic of #ubuntu-classroom to: Welcome to the Ubuntu Classroom - https://wiki.ubuntu.com/Classroom || Support in #ubuntu || Upcoming Schedule: http://is.gd/8rtIi || Questions in #ubuntu-classroom-chat || Event: Ubuntu Developer Week - Current Session: Ubuntu Development for the Youth - Instructors: bilal
5 [18:00] <ClassBot> Logs for this session will be available at http://irclogs.ubuntu.com/2012/08/28/%23ubuntu-classroom.html following the conclusion of the session.
6 [18:00] <bilal> Hello everyone! Welcome to the session about Ubuntu development for the youth!
7 === ogra is now known as ogra_
8 [18:01] <bilal> I'm Bilal Akhtar, and I've been involved in the Ubuntu community for two years now
9 [18:02] <bilal> As you'll soon learn (or, see), there's a lot more to contributing to Ubuntu than just coding, and there are lots of ways to chip in!
10 [18:03] <bilal> During the course of this session, if you have any questions, feel free to ask them on #ubuntu-classroom-chat, in this format:
11 [18:03] <bilal> QUESTION: Why is Ubuntu so awesome?
12 [18:03] <bilal> and then I'll answer them in this channel
13 [18:04] <bilal> So, let me start by giving a summary of what Ubuntu development actually is
14 [18:04] <bilal> Daniel Holbach's session earlier today, titled "Introduction to Ubuntu Development" was a detailed 1-hour session just about this
15 === pundiramit is now known as pundiramit-afk
16 [18:05] <bilal> I'll only briefly explain it, for more details you can read the IRC logs of that session
17 [18:05] <bilal> Ubuntu is a complete operating system, but it is built out of small segments called packages
18 [18:07] <bilal> Every package is written in a particular programming language, then compiled to create a binary package
19 [18:07] <bilal> the Ubuntu Installer, which you used to install your system, did little more than extract several binary packages
20 [18:08] <bilal> A frequent question I get from prospective developers, is "Which language is Ubuntu written in? Which language should I learn in order to start developing for Ubuntu?"
21 [18:09] <bilal> Most core Ubuntu packages, like the kernel (the software that manages hardware/software linkage, manages drivers and hardware, etc), low-level libraries, etc are written in C
22 [18:10] <bilal> Desktop packages, which form the front-end of Ubuntu, are written in different languages. Most are written in either C, C++ or Python
23 [18:11] <bilal> Which is why I suggest anyone interested in learning to help in Ubuntu development to learn Python
24 [18:12] <bilal> Some examples of desktop packages are Software Center (written in Python), Unity (written in C++), Nautilus the file manager (written in C), Gwibber the Twitter client (written in Python), etc
25 [18:12] <bilal> I choose Python because it's easy to learn from the ground up, and it teaches you the basic fundamentals of programming too, so you can later move on to learning C
26 [18:13] <ClassBot> FlowRiser asked: Any tips on where to start looking for python/cpp tutorials ?
27 [18:13] <bilal> Great question
28 [18:13] <bilal> For Python, I'd suggest you learn using the official Python docs and tutorials
29 [18:13] <bilal> http://docs.python.org/
30 [18:14] <bilal> The tutorial is at http://docs.python.org/tutorial/index.html
31 [18:15] <bilal> For C++, there are hundreds of tutorials. cprogramming.com and cplusplus.com are the popular ones
32 [18:15] <bilal> There are many others a Google away in case you don't like these
33 [18:15] <ClassBot> coalitians asked: Is it true java is not favoured(used) in the ubuntu community?
34 [18:16] <bilal> Java is used quite a bit, but not as much compared to C or Python
35 [18:16] <bilal> As an example, LibreOffice is written in Java
36 [18:16] <bilal> There are many examples of Java software in the Ubuntu community
37 [18:18] <bilal> Another example is Eclipse. But the examples are fewer compared to C or Python, mainly because Java requires a VM to run, like OpenJDK or Sun's Java VM
38 [18:18] <bilal> If you know Java already, I'd suggest you to learn C too, since Java and C are very similar
39 [18:18] <bilal> and C is widely used in the Ubuntu community
40 [18:19] <ClassBot> CuppaT asked: Could you suggest a python IDE please?
41 [18:19] <bilal> Personally, I like Vim. But it has a learning curve which many of you might not like
42 [18:20] <bilal> So I'd suggest Gedit, which comes pre-installed and is easy to use
43 [18:21] <bilal> Geany is also a great light-weight IDE
44 [18:21] <bilal> Go with either of the two, and you'll be fine
45 [18:21] <ClassBot> coalitians asked: Are python application in Ubuntu(linux) are being migrated to 3.x versions?
46 [18:21] <bilal> Yes, and no. Python 3.x is backward incompatible with 2.x code, which is why some applications haven't moved over
47 [18:22] <bilal> If you're starting from scratch, I'd recommend you to learn Python3
48 [18:23] <bilal> Very soon, we hope to get everything on the Ubuntu CD moved over to Python 3 so Python 2 can be dropped
49 [18:23] <bilal> Most libraries have different versions of Python 2 and Python 3 already
50 [18:23] <ClassBot> thotp asked: what are the main differences between c/c++ programming on ubuntu and windows?
51 [18:24] <bilal> Ubuntu has a different software stack. Ubuntu uses GTK+ and QT libraries for graphical applications, to render buttons, text boxes and all. Windows uses WPF and WinForms
52 [18:24] <bilal> But the base syntax is the same
53 [18:24] <bilal> and GTK+ and Qt applications can work on Windows to
54 [18:24] <bilal> *too
55 [18:25] <bilal> On a side note, if you want to know more about Python 3, attend barry's session right after this
56 [18:25] <bilal> back on Windows vs Ubuntu c++, if you learn C/c++ on either side, you learn the syntax which means you'll be right at home on the other side
57 [18:26] <bilal> preferably learn it on Ubuntu, since that's the platform you'll be coding for4
58 [18:26] <ClassBot> kamilnadeem asked: For someone who is starting in CS, where to begin from?
59 [18:27] <bilal> You'll likely be learning multiple programming languages at college/univ
60 [18:27] <bilal> They will be teaching you C for sure
61 [18:28] <bilal> I'll answer the rest of your question later on, as I explain "where to start"
62 [18:28] <ClassBot> eklok asked: what makes a good programmer in ubuntu? how many hours per day do you have to invest?
63 [18:28] <bilal> It has nothing to do with the number of hours
64 [18:28] <bilal> Quantity != quality
65 [18:29] <bilal> Many of you have tight schedules
66 [18:29] <bilal> I myself spend more than half of my day at shcool
67 [18:29] <bilal> *school
68 [18:29] <bilal> I, for example, can get many contributions done within an hour
69 [18:29] <bilal> Others may take longer
70 [18:30] <bilal> So, to become a good programmer, you just need to find the right thing to do, something which you like. Again, I'll answer this later on, in the "where to begin" part
71 [18:30] <bilal> on where you should start your journey in the Ubuntu communtiy
72 [18:30] * bilal is really making too many typos today
73 [18:30] <ClassBot> thotp asked: so what is the best c/c++ IDE in ubuntu?
74 [18:30] <bilal> Geany and/or Gedit.
75 [18:31] <ClassBot> FlowRiser asked: Regarding to developing cpp applications for ubuntu,do you recommend any good books/tutorials ? (regarding to best practices, GUI, etc)
76 [18:31] <bilal> Good question
77 [18:31] <bilal> As for tutorials, you can learn graphical programming from Gtk's online docs
78 [18:31] <bilal> or bare-bones C++ programming, which you should learn before GTK, from cplusplus.com
79 [18:32] <bilal> I prefer online tutorials over books
80 [18:32] <bilal> Many of you will be learning programming in school/college/university
81 [18:32] <bilal> so that's a good starting point
82 [18:32] <bilal> However
83 [18:33] <bilal> in the Ubuntu community, you'll "learn by doing"
84 [18:33] <bilal> which will be way more helpful than anything school or college can teach you.
85 [18:34] <ClassBot> kamilnadeem asked: Not at school or college but learning it by oneself? I am pursuing a course under Hardware and Networking BTW. :-)
86 [18:34] <bilal> In that case, you can just learn from an online tutorial, like I mentioned above
87 [18:34] <ClassBot> kamilnadeem asked: Also how does one progress in languages, general consensus is that Python is the one, one should pickup in CS. How does one scale up the languages.
88 [18:34] <bilal> If you're starting from scratch, learn Python, then C, then C++
89 [18:34] <bilal> then other languages
90 [18:34] <bilal> if you know one language already, like many high school students and university students learn Java early
91 [18:34] <bilal> then Java -> C -> Python
92 [18:35] <ClassBot> raki1 asked: GTK+ or QT be better in ubuntu?
93 [18:35] <bilal> Both are equally good, to be honest
94 [18:35] <bilal> Qt is superior in some ways, GTK+ is easier to learn in my opinion
95 [18:35] <bilal> pick your favourite
96 [18:35] <ClassBot> SamTate asked: Do you think that Vala is the next thing to do after learning some JS and basic PHP?
97 [18:36] <bilal> Vala is a clean language indeed
98 [18:36] <bilal> But I'd suggest new programmers to give it lower priority than the others, since Vala simply isn't very commonly used
99 [18:37] <bilal> After JS and PHP, C would be the logical way forward
100 [18:37] <bilal> Time to move on
101 [18:37] <bilal> Now, for the "why" aspect. Why, as youth, should you be interested in Ubuntu development?
102 [18:37] <bilal> There are numerous reasons
103 [18:38] <bilal> First, like I mentioned in an answer to a question above, you'll learn by doing
104 [18:38] <bilal> which will help you in programming way more than any other school/university course will
105 [18:38] <bilal> You'll learn to solve critical problems
106 [18:39] <bilal> You'll get the assistance of thousands of talented Ubuntu developers around the world
107 [18:39] <bilal> You'll learn to collaborate with a team
108 [18:39] <bilal> and you'll get to meet new people
109 [18:40] <bilal> As an added bonus, it will look good on your resume, if you're going in the CS/engineering field
110 [18:41] <bilal> and it will give you experience in programming, and make you a better programmer
111 [18:41] <bilal> It will set you apart from your peers in school or college
112 [18:41] <bilal> and contributing to Ubuntu is a really, really good way to spend time
113 [18:42] <bilal> spare time, that is
114 [18:42] <bilal> Some of you might think that it might be too much of a time waste
115 [18:42] <bilal> well, the good thing here is, that it's totally up to you to contribute
116 [18:43] <bilal> you can spend as much or as little time as you want
117 [18:43] <bilal> whenever you want
118 [18:43] <bilal> and if you're stuck, there are people out here to help you
119 [18:44] <bilal> on IRC (#ubuntu-devel for Ubuntu development, #ubuntu-app-devel for app development, #ubuntu-motu for packaging, etc)
120 [18:44] <bilal> on community support sites like Ask Ubuntu and Ubuntu Forums
121 [18:44] <bilal> and on mailing lists like ubuntu-devel@lists.ubuntu.com and ubuntu-motu@lists.ubuntu.com
122 [18:44] <ClassBot> raki1 asked: any gtk learning resources or guides?
123 [18:44] <bilal> The official GTK docs are great
124 [18:45] <bilal> http://developer.gnome.org/ has tutorials
125 [18:45] <ClassBot> helderc asked: Where Ubuntu (I mean Ubuntu not Kubuntu) uses Qt?
126 [18:45] <bilal> Unity 2d, for example, used Qt
127 [18:45] <bilal> Quite many applications use Qt
128 [18:45] <bilal> Ubuntu treats Qt as a first class citizen
129 === raindog is now known as Guest42319
130 [18:45] <bilal> http://www.markshuttleworth.com/archives/568
131 [18:46] <ClassBot> mesutcangurle asked: Why Ubuntu doesn't have a junior tasks for new comers or mentors for new comers.
132 [18:46] <bilal> Which is exactly what I'm getting to
133 [18:46] <bilal> Now, for the part about where you should start
134 [18:46] <bilal> Many of you wondered if development will be too hard or boring
135 [18:46] <bilal> there are multiple ways to help out
136 [18:47] <bilal> You can contribute to Ubuntu, by helping an upstream project in development. Like in the case of Nautilus the file manager. You can look at the list of bugs on Launchpad: http://launchpad.net/ubuntu/+source/nautilus/+bugs
137 [18:47] <bilal> download the source code, fix it and submit a patch upstream
138 [18:48] <bilal> more info on that, on tumbleweed's session tomorrow
139 [18:48] <bilal> Or you can help triage bug reports. triaging is basically reviewing bug reports from users
140 [18:49] <bilal> finding duplicates , asking users for more information, etc
141 [18:49] <bilal> moreinfo on http://wiki.ubuntu.com/Bugs
142 [18:49] <bilal> or you can help in translation
143 [18:49] <bilal> you can help in translating Ubuntu to another language
144 [18:50] <bilal> https://wiki.ubuntu.com/Translations
145 [18:50] <bilal> Or you can test newer Ubuntu releases in development, report bugs, etc
146 [18:50] <ClassBot> There are 10 minutes remaining in the current session.
147 [18:50] <bilal> You can write documentation too
148 [18:51] <bilal> or help new users out at Ubuntu, on sites like AskUbuntu, Ubuntu Forums, IRC (#ubuntu), etc
149 [18:51] <bilal> If you're stuck with anything, the mailing lists and IRC are always on your side
150 [18:51] <bilal> questions time!
151 [18:52] <bilal> Okay, so I'll answer some FAQs I often get from prospective young developers
152 [18:53] <bilal> First one is, do you get paid to contribute to Ubuntu?
153 [18:53] <bilal> I answer that with: "You get paid, not in money, but in knowledge"
154 [18:53] <bilal> Second is, how do you get upload rights to Ubuntu
155 [18:54] <bilal> There are many different types of Ubuntu developers
156 [18:54] <bilal> https://wiki.ubuntu.com/UbuntuDevelopers
157 [18:54] <bilal> each have upload rights to a specific part of the Ubuntu archive
158 [18:54] <bilal> once you have a history of strong contributions, you can apply for upload rights
159 [18:55] <bilal> one thing which I missed above, in the ways to help Ubuntu, was packaging
160 [18:55] <bilal> you can help to create packages out of upstream packages
161 [18:55] <bilal> this was explained in Daniel's session on intro to ubuntu development
162 [18:55] <ClassBot> There are 5 minutes remaining in the current session.
163 [18:55] <bilal> you can learn packaging from developers.ubuntu.com
164 [18:56] <ClassBot> FlowRiser asked: How can i develop greeters for Ubuntu ?
165 [18:56] <bilal> Umm, you mean lightdm greeters?
166 [18:56] <bilal> Consult the lightdm documentation
167 [18:56] <bilal> I don't know much about that, sorry
168 [18:56] <ClassBot> ajitesh asked: which is better pyhton or c++ for ubuntu dev?
169 [18:56] <bilal> C/c++ is more powerful, Python is easier to learn
170 [18:57] <bilal> really depends on what you're writing
171 [18:57] <bilal> for a user-facing application, Python is usually better
172 [18:57] <bilal> for low-level drivers, etc, C is better
173 [18:57] <ClassBot> _ericcc asked: Do ubuntu loco teams have access to a list of projects they can under take to help out?
174 [18:57] <bilal> Many LoCo team actively maintain projects
175 [18:58] <bilal> Some even maintain development
176 [18:58] <bilal> others just help in translation
177 [18:58] <bilal> It depends for each LoCo
178 [18:58] <bilal> so contact your LoCo team.
179 [18:58] <bilal> As with the case with all open source projects, everyone is allowed to help out
180 [18:58] <ClassBot> mesutcangurle asked: why ruby is not used commonly like Python?
181 [18:59] <bilal> Ruby has picked up more traction on the web
182 [18:59] <bilal> There's no way to answer "why" it isn't common
183 [18:59] <bilal> but that's just the way it is
184 [18:59] <bilal> on Ubuntu, that is
185 [18:59] <bilal> so, that's it!
186 [18:59] <bilal> I hope you liked the session
187 [19:00] <bilal> the logs will be available soon, on irclogs.ubuntu.com
188 [19:00] <bilal> in case you missed part of this session
MeetingLogs/devweek1208/UbuntuDevForTheYouth (last edited 2012-08-29 10:44:20 by dholbach)