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)