Bryson Payne

Author
Ranch Hand
+ Follow
since May 22, 2015
Bryson likes ...
Java PHP Python
Author of "Teach Your Kids to Code: A Parent-Friendly Guide to Python Programming", Professor of Computer Science at the University of North Georgia.
Cows and Likes
Cows
Total received
6
In last 30 days
0
Total given
0
Likes
Total received
15
Received in last 30 days
0
Total given
23
Given in last 30 days
0
Forums and Threads
Scavenger Hunt
expand Ranch Hand Scavenger Hunt
expand Greenhorn Scavenger Hunt

Recent posts by Bryson Payne

Ludoviko,
Thank you for the kind words, and I'm grateful for the feedback.
Let me know if I can ever be of help, and happy coding!
Bryson
11 months ago
Randy,
Thanks for the kind words, and for the question - I'm a fan of Barry Byrd's books, as well, and I like his approach better than most other programming books out there - he's very application-focused and builds fun apps as you pick up each new concept. The only difference I'd offer is that even Java for Dummies suffers a bit from the one-concept-at-a-time approach. For example, loops aren't introduced until around page 140 in J4D - in Learn Java the Easy Way, I use a loop in the very first app in Chapter 2, and every app after - and each time, we learn a little bit more about how loops work.
The analogy I used in another post was enjoying driving a car and learning how to maintain it versus having to learn what each part does before you can drive. Both approaches have merit (I want a mechanic who knows how to put my car back together again, or a software developer who understands how to code from the ground up), I just like using fun apps from the very beginning as the motivation to keep learning as you go. [Java is my muscle car, Python is my sporty little coupe , but I love driving them both, and souping them up!]
Over the years, I've found that my students enjoy learning the basics while building fun, playable games and apps from the very start, rather than learning each concept separately first. It's not a good or bad difference either way, it's just different - my book is aimed at middle-schoolers to adults either learning to code for the first time, or learning to code in Java as a new language.
I'd be glad to hear what you think as an experienced coder - and let me know if I can be of help anytime,
Bryson
11 months ago
Congratulations Steven, Paul, Mark and Tony! I'd love to hear what you think of "Learn Java the Easy Way", and let me know if I can be of help anytime.

And, thanks to Java Ranch for having me this week - it's an honor, and I'm grateful to be part of a community helping coders.

Sincerely,
Bryson
11 months ago
Dorel,
Thanks for the follow-up - Campbell's right again, Java runs everywhere (from every Android mobile device to virtually every PC/Mac/Linux desktop/laptop), but C# is usually limited to Windows servers (and only Windows desktops, plus the tiny number of Windows phones) - Java even runs on your BluRay DVD player. In short, it's got a huge footprint compared to C#, and Java was cross-platform and web-enabled from its infancy.
On your second question, I deliberately made the C# program look more Java-ish by declaring Main() as public, and avoiding the using and namespace statements, but both programs will compile and run - C# doesn't mind if Main() is declared as private (you can even leave out the string[] args, or return an int instead of void). C# just looks for a Main() method as the entry point of the program you're running, while Java requires the main() method to be declared as public static void main(String[] something).
No problem at all - asking these questions and digging until you find the answer is what makes you a better programmer. And, understanding how things work is fun (and useful)!
Let me know if I can help anytime, and thanks again for posting,
Bryson
11 months ago
Dorel,
Thanks for the question - it's one I get a lot, and both Liutauras and Campbell are right, there are more similarities than differences in Java and C#. Microsoft's C# was at least influenced by Java (in fact, Microsoft's J++ language, which preceded C#, conformed to the Java language specification - until a court battle between then-Java-owner Sun Microsystems and Microsoft shut J++ down). Consider the following Hello World app:
In Java:

And in C#:

Besides some capitalization and a class/function name or two, you can pretty much translate directly between the two for simpler apps (kind of like speaking Spanish and being able to read some Italian or Portuguese). There's a longer discussion of the similarities/differences posted (from 16 years ago! - this has been going on for a while) at https://coderanch.com/t/35934/sharp-Java-sharp-clone-Java - but the main difference is that some employers are "Microsoft" shops, building on .NET platforms, and others are "Java" shops, often with PC/Mac/Linux and web-based apps running Java.
I recommend to my students that they learn both Java and C# (along with one or more of Python, JavaScript, PHP) if they want to be an enterprise developer, as both languages are in high demand among employers, and they each have strengths depending upon the application and the culture of the company.
The most important thing is to start learning now - whether you pick Java, C# or another programming language, get started today, and add new languages/skills as you grow .
I hope that helps a bit, and thanks again for posting,
Bryson

11 months ago
Karolina,
Thanks for posting, I'm glad to help. Anthony's right, I think it's great to have different books and approaches for different people (and, I have a Udemy course based on "Learn Java the Easy Way" if you prefer videos to go along with the book), but the one criticism I have for most Java books as a Java teacher for almost 20 years is that the vast majority of programming books, even those for beginners, introduce each new concept separately. First, expressions and variables. Then conditions. Then loops. Then classes. Separate, sterile concepts - you don't get to see a cool, fully-featured app until late in the book, if at all, because you haven't learned all the little pieces yet.
It's a bit like not being allowed to drive a beautiful car until you learn to change out the engine and transmission...
In that analogy, I'm proud to be a mechanic, and I teach other mechanics (computer scientists), but I believe in enjoying the ride while you're learning to build a car of your own .
After a brief intro to Java using the new Java 9 JShell, you'll jump right into creating a fun, playable guessing game, then build a secret message encoder/decoder, then a beautiful, colorful, animated bubble-drawing app. And, you'll build the apps for the command line first, then turn them into GUI desktop apps, and finally, modify them into fully-functional Android mobile apps in Java. You can learn the basics while building apps you'll actually enjoy.
And by the end of the book, you'll be able to put those same skills to use building your own fun, creative apps.
That's one of my favorite parts of teaching - seeing the amazing things students can create once they understand how to put it all together - so why not learn by building complete apps from the very start?
I'd love to hear what you think if you try the book or the Udemy course, and thanks again for the question,
Bryson
11 months ago
Prino,
Thanks for the question, and Yes! I wrote "Learn Java the Easy Way" for middle schoolers to adults, using the same apps and approach I've used with real middle school students in some of the schools I work with, and with college freshmen at my university.
One bonus of the book is that we build the apps first as a command-line program, then as a GUI desktop app, then as an Android mobile app, using much of the same Java code across all three platforms. In addition to learning the basics of Java, you'll finish the book with three fully-featured Android mobile apps you built from scratch in Java .
I'd love to hear from you if you give it a try - and thanks again for posting the question,
Bryson
11 months ago
Kent,
Thank you for the kind words - "Learn Java the Easy Way" is aimed at middle school to adult learners.
I've been using it with middle-schoolers as a second language (after they've learned Python), as early as 7th grade, and I think middle school is the best bet if you want to teach Java as a first language, as well. The object-oriented nature of Java requires more abstract thinking (teachers call this Piaget's "formal operational" stage, age 12 and up), but the apps we build in the book are meant to engage coders young and old once they're past 6th grade or so. I do a lot of interactive, visual apps in my college courses, as well, and I hear back from students 10+ years later who still remember building a colorful drawing app from their freshman class with me  .
Plus, one of the great things about Java is that we can write code and deploy it at the command line, add to it as a GUI desktop app, and use much of the same code in an Android mobile app, with just a little forethought and a few modifications. Multitouch events turn out not to be much harder than a single mouse click (we just use a for loop to process a series of touch events at once instead of a single click event), but for about one extra line of code, you can draw with all five (or 10) fingers on your Android tablet or phone screen at the same time.
By focusing on just a few apps, building them first as a command-line app, then as a GUI desktop app, then as an Android mobile app, making it one step better each iteration (just like we do in real iterative development), my goal is to teach the basics through fun games and apps that coders young and old will enjoy.
I'd love to hear what you think if you get a chance to try the book out - thanks again for posting, and happy coding!
Bryson
11 months ago
Germán,
Great question - thanks for posting!
In the "old days" before Java 9, even a "hello world" program required a class declaration (try explaining that to new coders), a "public static void main(String[] args)", and finally, a System.out.println("Hello"); - followed by that crucial semicolon and two closing braces. Then, save the file with the same name as the class, then compile, then run.
Typos, problems with uppercase/lowercase, general confusion, and you could spend a significant chunk of a class period getting their first line of code to work, without even explaining what the other two lines of code really do (the public class and public static void main seem like mystical incantations from a Java spell book...).
Maybe I'm exaggerating, but not much 
Now, we can fire up JShell, and type:

(Notice no semicolon needed at the end of a single command!) JShell will reply with Hello! - and just like Python's Shell, you can evaluate expressions, test a few lines of code to see how Java actually works without coding a "driver" class, try loops, even build interactive, windowed apps (a few chapters in...):

All of this is possible in JShell - it's the Python-like beginner-friendly gateway to Java we've been waiting for (for a couple of decades).
If you haven't played around with JShell in JDK 9, I highly recommend it, especially for teachers.
Thanks again for the great question, and I hope you'll give JShell a try, especially when working with new coders.
Sincerely,
Bryson
11 months ago
Joris,
Thanks for posting - I've been teaching programming (Python, Java) for almost 20 years at the university, and after my first book, "Teach Your Kids to Code" (Python), I had a lot of readers ask if I'd use the same approach to writing a Java book.
Most textbooks and how-to books break programming into sterile, separate concepts (variables, conditions, loops, etc.) and rarely put them all together until late in the book, if at all.
Learn Java the Easy Way begins with interesting applications (a number guessing game, secret message encoder, bubble-drawing app) and builds the code iteratively, starting with just a few lines to do the most basic part of the app, then adding the next feature, then the next, until you have a fully-featured, playable app you want to share with friends.
That's the way we do agile/iterative development in the real world, and I've found my students prefer to learn the concepts hands-on while building apps they actually enjoy.
The reason I made it for beginners is because I have two young sons (7 & 9 years old), and I love working with elementary, middle and high school students coding - coding is the gateway to a multitude of cool careers in technology, and I like opening that path up for the next generation.
Thanks again for the question, and happy coding!
Bryson
11 months ago
Chandrasekaran,
Tim's right, you can test the regex beforehand - my students like https://regex101.com/ for testing regular expressions online. A regex checker like that can help, especially if you're new to regular expressions.
Could you perhaps post the regular expression you were attempting to use? Regular expressions are powerful, and with much power... you probably know the rest.
Happy coding!
Bryson
11 months ago
Thanks, all! It's great to be back on the Java Ranch - it's been two years since you welcomed my first book, "Teach Your Kids to Code", and I'm excited to be back with my new Java book, "Learn Java the Easy Way"!

I've been teaching Java for almost two decades, so any question's fair game, but I'm especially excited about some of the Java 9 features we explore in the book - especially the new JShell! It's a terrific teaching/learning tool for easing your way into Java.

I look forward to your questions, and it's an honor to be back on the Ranch!

Sincerely,
Bryson
11 months ago

Frits Walraven wrote:I received a copy of your book today! I will start next week with my son and continue during the summer holidays.


Thank you, Frits, I'm honored! Let me know what you and your son think of the book, and I'll be posting information about my upcoming Udemy course at http://teachyourkidstocode.com within the next 2 weeks, in case either of you might like video help.
A huge thank you to all the Ranch crew - it's been great talking with everyone this week. Let me know if I can ever be of help.
Happy coding!
Bryson
3 years ago

Jeanne Boyarsky wrote:
The winners are:
Charlsy Chuks
Ty McGuire
Jesse Otten
Wayne Brehaut


Congratulations, Charlsy, Ty, Jesse and Wayne! I hope you enjoy Teach Your Kids to Code - I'd love to hear what you think, and let me know if I can ever be of help.
Thanks to the Ranch team for hosting me this week - it was great interacting with everyone on the Jython/Python forum!
Sincerely,
Bryson
http://teachyourkidstocode.com
3 years ago
I want to thank everyone for their thoughtful questions on Python so far this week, and for all the kind words about my book Teach Your Kids to Code.

I'd like to add one other thread to the discussion: Apps, Bots and Drones
I just taught a Summer Honors camp workshop here at UNG this morning, with robots (Sphero, Ollie and Vex bots) and drones (Parrot AR 2.0's and mini Rolling Spiders), and writing apps in Python.
To engage the students, I used robots that were under $100, an $80 Parrot Rolling Spider mini-drone from Amazon, and 3D printers (now approaching home affordability with the M3D Micro for $349: http://printm3d.com/themicro/ and Kickstarter-funded Tiko coming in December for $179: https://www.kickstarter.com/projects/tiko3d/tiko-the-unibody-3d-printer/description).
The response was terrific - the light in students' eyes was incredible when they saw that they could code a simple turtle app, a major cloud-based app, and control a hefty drone using Python (we also talked about other languages like Java and block-based approaches like the Tickle App).
Wherever you are, whatever language, platform, or tools you use, there's just too much cool stuff out there. We can't afford to let kids think coding is too hard OR too boring - code runs the world! There's software in every cool new thing (and lots of cool old things) making it useful, fun, or even life-changing.
Encourage your kids and the kids around you to pick up what we already know is a great skill - coding for life.
Thanks to the Ranch for hosting me this week - I'm still around to answer questions, let me know if I can help in any way,
Bryson
3 years ago