Open Source & Free ❤️

Full Stack Java Bootcamp

Full Stack Java Bootcamp

Header Image

It’s LIVE! Check out the bootcamp signup here.

Thanks again to everyone who answered my questions. I got tons of valuable feedback on our work & what you would like to learn. It was super helpful and I’m grateful to all of you as you are literally shaping how this bootcamp (and the future of Codename One). I’m sorry if I was brief in some of the thank you emails, it took some time as I wrote them all personally and worked well into the night the other day.

One of the main things I got from pretty much everyone who wrote is the desire to improve your UI, this is a huge deal for us as I think we have an advantage here. E.g. a lot of developers who wrote to me (some of which worked with us for years) weren’t familiar with these demos I’ve published:

This took me a day or two to build (based on existing design)
Figure 1. This took me a day or two to build (based on existing design)

To me these demos show more than just a good looking UI. They hint of the potential…​

In the right hands you can produce any damn UI design that your insane designer can come up with. This isn’t true for most other tools as they don’t control every pixel on the screen…​

We don’t have that level of control even in regular native apps where an OS update (or vendor customization) can wreck havoc in your meticulously crafted UI.

Learning to do this in a portable and consistent way is challenging. Some of that is because of the rough edges of our tools & some of that is because of outdated docs/videos. I spend almost all of my time writing documentation, answering your questions on stackoverflow/elsewhere but this is clearly not enough.

Our open source community is hugely helpful but it isn’t as effective for things like high quality guides. Docs are probably the hardest things to build using a community process.

How do we Fix This?

This will require some work…​

When I was a young programmer in my late teens and early 20s I already knew quite a lot but I also had bad habits…​

I picked a lot of bad practices from learning on my own and I might have ended up very differently had I not stumbled into amazing mentors who guided me in the right direction. These great mentors transformed the way I code communicate & think. They were pivotal in my career.

When we started the LWUIT project at Sun Microsystems we spent a lot of with customers trying to understand the difficulties they were addressing firsthand. At that point I realized that not only was I mentoring the junior developers I was working with, I was getting a lot in return. I was able to glimpse into LWUIT thru a fresh pair of eyes and see what we got right and what we got wrong. This improved LWUIT immensely.

That’s why I spend almost all my time doing customer support, it teaches me a lot and allows me to run the company in a way that makes sense for this type of product. But that’s not enough…​

Bootcamp

A bootcamp isn’t a regular course. It runs over a narrow stretch of time & is deeply interlaced with personal 1 on 1 mentoring. This means I’ll need to seriously clear my schedule to do this but I think the value proposition is huge. Unfortunately it also means this doesn’t scale all too well either. Here I want to provide from my experience but also learn from yours so I can initiate changes and we can adapt better to fit your needs.

The core focus of the bootcamp would be on building a compelling UI that would be native in feel and quality without compromising on anything. The samples I gave you above are great but they’re just samples. When you need to take an app all the way from generating a certificate, designing a gorgeous UI, building a server, connecting it and putting it into production in the store this becomes a challenge with many pitfalls along the way.

But this is not enough, I want an end to end full stack application from mobile to server. This is important because so many developers today carry the full weight of responsibility to build a complete app including the server side, networking and everything.

Building an App from Scratch to Production

When I told Chen about my plan to do a 4 week bootcamp and build a full production app as part of it he had his doubts. I’m paraphrasing here but this is the gist of what he said: “you don’t really think you can build a full production grade app in 4 weeks?”.

My answer was: “no, I will build the app and server in two weeks!”

That’s ambitious but that’s exactly what a bootcamp is, it’s a startup for all intents and purposes. Building a full fledged well designed and architected app is something all of you can do within 2-4 weeks when using Java/Codename One.

The two additional weeks will cover a lot of things and include personal mentoring which I think is crucial for our shared success.

More Details Coming Soon

There is so much more I would like to cover and I’ll cover some of the nitty gritty details on how this bootcamp will achieve it’s transformative goals in my post early next week. There are many logistic details that we need to sort out mostly with the company as I will find it hard to handle my day to day tasks during the bootcamp.

In the meantime, if you haven’t answered my email please do so as I’m still interested in hearing more. Also feel free to write and comment in the blog with thoughts/issues/concerns etc.

I’d also appreciate sharing this with your friends & co-workers who might be appropriate.

This was the first article in a 3 part series, check out part 2 here.

10 Comments

  • Dalvik says:

    Interesting stuff, is this for all levels?
    Is there a place to register?
    How would this be structured?

  • Shai Almog says:

    Java knowledge is a must, ideally some level of Codename One experience would help but there will be optional content at the start that a person completely new to Codename One would be able to follow to get started quickly.

    I’ll answer the rest in an upcoming post.

  • Dalvik says:

    Thanks! Looking forward to it!

    Will this be at a physical location or will I be able to join online?

  • Ignatus Ujomor says:

    I am interested in the bootcamp and want to know the date, location, cost (if any), and other requirements.

  • Chad Elofson says:

    This sounds great. I have gained insight from Steve Hannah already. So, I feel this would be great to take my Codename One experience to the next level.

    Looking forward to it.

  • Shai Almog says:

    Great!
    I’ll announce all the details in the blog since the final dates aren’t settled (a lot of logistics around my time). Registration should open soon though.

    The bootcamp will be over the internet with 1 on 1 sessions going over skype or something like that.

  • Shai Almog says:

    Great. This will be over the internet thru skype or similar tools for the 1 on 1.

  • Shai Almog says:

    Thanks, I’m sure Steve is thrilled to hear that 😉

  • salah Alhaddabi says:

    Dear Shai very excellent idea. Would be great if you can cover backend stuff using java ee 7 api only without third party libraries. You can for example include rest api, websocket, jms, jason processing, cdi, jpa, ejb and then present how to call web services layer from CN1 and also how to asynchrounously listen to websockets and best practices to update UI and to upliad/download images so everything is in java

  • Shai Almog says:

    Thanks for the feedback. I’m somewhat conflicted between simple tomcat, Java EE or Spring in terms of backend. My goal is to spend as little time as possible configuring stuff and make the solution as simple as possible so people can adapt this easily to their “real world” setups.

    I don’t want to use something too exotic though, so I won’t go into some of the newer microservice style frameworks. My main focus by a huge margin is on the client, there are great Java EE/Spring etc. courses out there and I don’t think I can improve on them. What I want to do is show how all this ties together to a single cohesive product.

Leave a Reply