Re: [Tutor] Learning Objectives?
On 01/03/17 10:09, Leam Hall wrote: > I see computer science as a science that calls upon our creative nature > to produce excellence. Adding constraints like secure coding and TDD > push us to even greater artistic expression. Lack of constraints gives > us the current standard of non-performant and insecure code. I'd argue that most of that is software engineering. Computer science is the study of computation, ie how we compute stuff. Software engineering is about the practical application of that to building things. It's like the relationship between physics and traditional engineering (Electrical, Mechanical, Civil etc). Engineers study the basic science but they also study topics like design, ethics, law, economics/accounting and marketing. > Hence my desire for the basic tools of science and engineering. What do > I need to know to produce solid code in a team of solid coders. It's interesting how these things seem to come in groups. Yesterday, after sending my initial response I had lunch with an old friend who is working on a consultancy on the future of Computer Science teaching here in Scotland. We had a long chat about what should be in/out of a modern CS curriculum. That discussion made me rethink the need for lists of criteria because college courses need to do just that. And as we brain-stormed lists of topics we naturally categorized some as mandatory core subjects (eg discrete math, finite state machines, data structures, algorithms etc) and others as optional modules (AI, machine architectures etc). Somebody already suggested looking at the online college courses for ideas, so I guess I'd now second that as probably the best available source. One other place to look is the British Computer Society's web site. I don't know if it's still there but they used to have an Industry Model which included definitions of knowledge areas and levels for different roles (programmer, analyst, software engineer, architect etc) It's now apparently called Skills Framework for the Information Age.(SFIA) Wikipedia has this page as a starter: https://en.wikipedia.org/wiki/SFIAPlus HTH -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
On 02/28/17 05:24, M Hashmi wrote: Coding is an artthat helps you craft beautiful things in digital world. As beginner it's pretty natural to confuse about which learning curve can benefit you most in future. I see computer science as a science that calls upon our creative nature to produce excellence. Adding constraints like secure coding and TDD push us to even greater artistic expression. Lack of constraints gives us the current standard of non-performant and insecure code. Hence my desire for the basic tools of science and engineering. What do I need to know to produce solid code in a team of solid coders. Leam ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
On 2/27/17 9:57 AM, leam hall wrote: On Mon, Feb 27, 2017 at 9:28 AM, Alan Gauld via Tutor [1]wrote: On 27/02/17 10:44, Leam Hall wrote: Is there a list of Python skill progression, like "Intermediates should know and Advanced should know ?" Trying to map out a well rounded study list. I'm not aware of such a list, and I'm not sure it's of much value. Better to just learn what you need and use it. When you need to learn more, learn it. The worst thing you can do is study an arbitrary list of topics that don't have any relevance to the problems you need to solve! ... When I was coming up as a Linux guy I took the old SAGE guidelines and studied each "level" in turn. It was useful for making me a well-rounded admin and helped me put off some higher end stuff I wasn't really ready for. ... I agree with Leam. If anyone has such a list, I think many of us would be interested to see it. Personally, I'd already been a programmer for 30 years when I first started using Python and Django. I learned them in bits and pieces, as needed for a 4 year project. I never took time to read a comprehensive book on either topic. Also, they both evolved quite a bit during those 4 years, with many new and changed features. So it's possible that I've completely overlooked some relatively basic features. If there were such a list, I'd quickly scan the "basic" section to what I may have missed. Then, I'd scan the more advanced sections to what else exists. It would also be useful when teaching Python to someone else, to have some guidance about which language constructs are used most often. As a quick straw man, here's a syllabus I started whipping up recently for a Python and Django class I was asked to teach. - [2]http://bristle.com/Courses/PythonDjangoIntro/syllabus.html It has 5 main sections: - Python - Django - Possible Advanced Python Topics - Possible Advanced Django Topics - Possible Related Topics The class would be ten weeks, with 6 hours of lecture and 4 hours of lab per week, so I'd hope to cover all of the 1st 2 sections, and perhaps some/all of the last 3 sections. Feel free to comment on errors, omissions, misplaced items, etc. Enjoy! --Fred -- Fred Stluka -- [3]mailto:f...@bristle.com -- [4]http://bristle.com/~fred/ Bristle Software, Inc -- [5]http://bristle.com -- Glad to be of service! Open Source: Without walls and fences, we need no Windows or Gates. -- References Visible links 1. mailto:tutor@python.org 2. http://bristle.com/Courses/PythonDjangoIntro/syllabus.html 3. mailto:f...@bristle.com 4. http://bristle.com/~fred/ 5. http://bristle.com/ ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
Coding is an artthat helps you craft beautiful things in digital world. As beginner it's pretty natural to confuse about which learning curve can benefit you most in future. If I were you I would go with simple approach. I would choose best of the best software available and start building its source by looking at it. Bit by bit piece by piece it would help you to understand a pre-built application. Lets assume as you've posted in Django group so you might be interested in web development. Pick a best project and start writing your own guide for yourself. The best one I came across is django-oscar. Start building it's replica and document each step in the process for yourself. You can consult the django's own docs as well as django-oscar's documentation for understanding what the function/class is about. I bet that in a single month you will be able to build a semi-dynamic site yourself. In maximum 3 to 4 months you can really do wonders. Hope it helps. Regards, M On Tue, Feb 28, 2017 at 1:39 AM, Aaron Myatt via Tutorwrote: > Just my humble contribution: I rather appreciated this fellows intermediate > python tutorial series: > https://youtu.be/YSe9Tu_iNQQ?list=PLQVvvaa0QuDfju7ADVp5W1GF9jVhjbX-_ > > Though I would argue some other topics, like context managers, would also > be worth including in his list. > > On 28 Feb 2017 9:15 a.m., "Alan Gauld via Tutor" wrote: > > > On 27/02/17 14:57, leam hall wrote: > > > > >> I'm not aware of such a list, and I'm not sure it's of much value. > > >> Better to just learn what you need and use it. ... > > > > > When I was coming up as a Linux guy I took the old SAGE guidelines and > > > studied each "level" in turn. It was useful for making me a > well-rounded > > > admin and helped me put off some higher end stuff I wasn't really ready > > > for. > > > > Its an individual choice, so if it works for you don't let > > me stop you :-) But I still don't know of any such list. > > > > > documentation. It's sort of the "if we hired a junior or senior coder, > > what > > > basics would we want them to know?" > > > > That's the thing. I've never, in 40 years in IT, seen > > anyone advertise for a junior programmer. Just doesn't seem to > > happen. It's a bit like having a headache and asking for a > > weak pain killer... > > > > There are places offered for programming apprenticeships, > > but they assume you are starting from scratch. > > > > -- > > Alan G > > Author of the Learn to Program web site > > http://www.alan-g.me.uk/ > > http://www.amazon.com/author/alan_gauld > > Follow my photo-blog on Flickr at: > > http://www.flickr.com/photos/alangauldphotos > > > > > > ___ > > Tutor maillist - Tutor@python.org > > To unsubscribe or change subscription options: > > https://mail.python.org/mailman/listinfo/tutor > > > ___ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor > ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
On 02/27/17 20:12, Alan Gauld via Tutor wrote: On 27/02/17 14:57, leam hall wrote: I'm not aware of such a list, and I'm not sure it's of much value. Better to just learn what you need and use it. ... When I was coming up as a Linux guy I took the old SAGE guidelines and studied each "level" in turn. It was useful for making me a well-rounded admin and helped me put off some higher end stuff I wasn't really ready for. Its an individual choice, so if it works for you don't let me stop you :-) But I still don't know of any such list. Understood. However, think about the issue from a newbie perspective. 1. The Python Tutor e-mail list helps with questions when someone can frame a question. 2. Books or videos like "Learning Python", "Learn Python the Hard Way", or the Coursera/EdX classes cover what the publisher felt could be covered in a profitable way. 3. Books like "Python Projects" can help someone go from absolute newbie to being able to do useful stuff. When I was learning Ruby I put section dividers in a 3 ring binder and had one section for each of the topics in the Pickaxe book. That way as I learned and relearned things could gel a little better. I have an old copy of "Learning Python" and will break out the section dividers today. I don't know about anyone else, but I have a bad habit of jumping in way over my head and getting frustrated when I can't make things work. By setting a sequential list it helps prevent that; learning Objects is much easier when one understands functions. documentation. It's sort of the "if we hired a junior or senior coder, what basics would we want them to know?" That's the thing. I've never, in 40 years in IT, seen anyone advertise for a junior programmer. Just doesn't seem to happen. It's a bit like having a headache and asking for a weak pain killer... There are places offered for programming apprenticeships, but they assume you are starting from scratch. The PHP community has a Mentoring thing (https://php-mentoring.org/), and I would assume there are many open source Python projects that would be willing to bring a junior in and help them grow. Growth and contributing seem to go hand in hand. It's easy to read a book and think you "know" a language. It's more challenging when you're in the lab with seasoned programmers and you're pushed to produce better and better code. It's a lot nicer for the seasoned programmers if you don't have to be convinced to write tests or taught what an object is. :) The "junior" level is more a gift to the seasoned programmers; someone who can do those basics has proven a willingness to learn coding past the "type what's in the book" phase. Of course, one must go through junior to get to senior. For those interested, GIAC has a Certified Python Programmer. It focuses on using security tools, which is GIAC's forte. http://www.giac.org/certification/python-coder-gpyc Does a certification make you a better coder? Not really, there are lots of uncertified (but probably certifiable!) expert coders out there. However, certifications can help in the job search and it's nice to get paid for what you enjoy. Leam ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
Just my humble contribution: I rather appreciated this fellows intermediate python tutorial series: https://youtu.be/YSe9Tu_iNQQ?list=PLQVvvaa0QuDfju7ADVp5W1GF9jVhjbX-_ Though I would argue some other topics, like context managers, would also be worth including in his list. On 28 Feb 2017 9:15 a.m., "Alan Gauld via Tutor"wrote: > On 27/02/17 14:57, leam hall wrote: > > >> I'm not aware of such a list, and I'm not sure it's of much value. > >> Better to just learn what you need and use it. ... > > > When I was coming up as a Linux guy I took the old SAGE guidelines and > > studied each "level" in turn. It was useful for making me a well-rounded > > admin and helped me put off some higher end stuff I wasn't really ready > > for. > > Its an individual choice, so if it works for you don't let > me stop you :-) But I still don't know of any such list. > > > documentation. It's sort of the "if we hired a junior or senior coder, > what > > basics would we want them to know?" > > That's the thing. I've never, in 40 years in IT, seen > anyone advertise for a junior programmer. Just doesn't seem to > happen. It's a bit like having a headache and asking for a > weak pain killer... > > There are places offered for programming apprenticeships, > but they assume you are starting from scratch. > > -- > Alan G > Author of the Learn to Program web site > http://www.alan-g.me.uk/ > http://www.amazon.com/author/alan_gauld > Follow my photo-blog on Flickr at: > http://www.flickr.com/photos/alangauldphotos > > > ___ > Tutor maillist - Tutor@python.org > To unsubscribe or change subscription options: > https://mail.python.org/mailman/listinfo/tutor > ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
On 27/02/17 14:57, leam hall wrote: >> I'm not aware of such a list, and I'm not sure it's of much value. >> Better to just learn what you need and use it. ... > When I was coming up as a Linux guy I took the old SAGE guidelines and > studied each "level" in turn. It was useful for making me a well-rounded > admin and helped me put off some higher end stuff I wasn't really ready > for. Its an individual choice, so if it works for you don't let me stop you :-) But I still don't know of any such list. > documentation. It's sort of the "if we hired a junior or senior coder, what > basics would we want them to know?" That's the thing. I've never, in 40 years in IT, seen anyone advertise for a junior programmer. Just doesn't seem to happen. It's a bit like having a headache and asking for a weak pain killer... There are places offered for programming apprenticeships, but they assume you are starting from scratch. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
On 02/27/2017 07:57 AM, leam hall wrote: > When I was coming up as a Linux guy I took the old SAGE guidelines and > studied each "level" in turn. It was useful for making me a well-rounded > admin and helped me put off some higher end stuff I wasn't really ready > for. > > Things like Testing and documentation are useful, but only learning what > seems to bee needed for this one project seems harder for the new coder. > Most of us didn't know TDD was useful until we started doing it. Same for > documentation. It's sort of the "if we hired a junior or senior coder, what > basics would we want them to know?" > > Thanks! > > Leam Just as a suggestion, I think if you look at the curriculum of various training courses, books, online tutorial series you will get each author's view of what a logical progression is. There are probably as many different progressions as there are people expressing an opinion, but it seems to me the flow is at least roughly aligned when I glance at these from time to time. For example (this is no endorsement, just a site I do peer at now and then and so remember it), look here: http://www.python-course.eu/python3_course.php the left bar has a kind of order that's not insane (except I'd be looking at files in the first 10 minutes, but that's just me); then there's a tab called "advanced topics": forking, threads, etc. and then some stuff you look at if you need it: wsgi, mod_python, sql connectors. And then another tab for a great big "external" topics like NumPy, Machine Learning and there are lots more in that category like Django, Flask, SciPy, and so on - all can be considered "advanced" because they're not the language itself, but stuff some people might expect you to be proficient in for a given job that's billed as a "Python Job". If you're looking at abstract base classes in your first few days, that's probably not the right order ;) I even have a bit of a bone to pick with the TDD movement, not that it's a bad idea by itself, but when treated as a "religion" it seems to lead to a mindset that unit tests alone are sufficient to prove a codebase, when integration testing is just as important. ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
On Mon, Feb 27, 2017 at 9:28 AM, Alan Gauld via Tutorwrote: > On 27/02/17 10:44, Leam Hall wrote: > > Is there a list of Python skill progression, like "Intermediates should > > know and Advanced should know ?" Trying to map out > > a well rounded study list. > > I'm not aware of such a list, and I'm not sure it's of much value. > Better to just learn what you need and use it. When you need > to learn more, learn it. The worst thing you can do is study an > arbitrary list of topics that don't have any relevance to > the problems you need to solve! > > Nobody is going to ask for an intermediate programmer, or a > beginner programmer. They might ask for an expert, but if you > are really an expert you will know that already - and you > won't be able to become one by studying anything extra. > > Once you are past the basics - ie. you can write a program > that does something useful, it's all about writing code and > learning as you go. And you never stop learning. > > > Hey Alan! When I was coming up as a Linux guy I took the old SAGE guidelines and studied each "level" in turn. It was useful for making me a well-rounded admin and helped me put off some higher end stuff I wasn't really ready for. Things like Testing and documentation are useful, but only learning what seems to bee needed for this one project seems harder for the new coder. Most of us didn't know TDD was useful until we started doing it. Same for documentation. It's sort of the "if we hired a junior or senior coder, what basics would we want them to know?" Thanks! Leam ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
Re: [Tutor] Learning Objectives?
On 27/02/17 10:44, Leam Hall wrote: > Is there a list of Python skill progression, like "Intermediates should > know and Advanced should know ?" Trying to map out > a well rounded study list. I'm not aware of such a list, and I'm not sure it's of much value. Better to just learn what you need and use it. When you need to learn more, learn it. The worst thing you can do is study an arbitrary list of topics that don't have any relevance to the problems you need to solve! Nobody is going to ask for an intermediate programmer, or a beginner programmer. They might ask for an expert, but if you are really an expert you will know that already - and you won't be able to become one by studying anything extra. Once you are past the basics - ie. you can write a program that does something useful, it's all about writing code and learning as you go. And you never stop learning. -- Alan G Author of the Learn to Program web site http://www.alan-g.me.uk/ http://www.amazon.com/author/alan_gauld Follow my photo-blog on Flickr at: http://www.flickr.com/photos/alangauldphotos ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor
[Tutor] Learning Objectives?
Is there a list of Python skill progression, like "Intermediates should know and Advanced should know ?" Trying to map out a well rounded study list. Thanks! Leam ___ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor