A review of my experience taking the NAS Academy Solana Developer Course where I will provide insight on key topics. First with a little introduction followed by my experience with the course. I will highlight what were my favorite parts or things in the course. At last, I will offer some recommendations that I think would help the team and future students who are looking to enroll in future courses that might be offered by NAS.io or Superteam for the Solana ecosystem.
The NAS Academy Solana Developer Course
https://nas.io/solana?origin=nasacademy.com
A little introduction on my background
I have been interested in web development for as long as I can remember. I started at a very young age with computers on a Tandy TRS-80 at the end of the 80s. I recall experimenting with BASIC to create things like a calculator or to randomize pixels on the display to create “art” that would basically look like a QR code today. Since then I have always worked on computers to different extents. I became a self-taught Linux admin at the beginning of my 20s offering services and solutions for business and university research departments. I then continued to learn to become a front-end developer working for a software development business and at a bank for a few years. This was around the beginning of Node.js so it was in pure Javascript, HTML, and CSS. I also since then learned PHP and SQL and I am currently studying computer science at the University of the People learning Java and Python.
The reason that I wanted to join the NAS Academy Solana Course is that I have been interested in blockchain technology since 2012. I was back then mining Bitcoin as something new and novel but stopped less than 2 years later because it was not getting enough traction for me to continue. I still will not forgive myself for losing my private keys to my wallets back then. Sadly there are around 150 BTC that will never be recovered.
Afterwards, I can say that I did not touch anything blockchain or crypto-related until 2018 when I started trading and investing little money in the blooming crypto ecosystem. Today, I am still trading what I can but mostly spend my time around Non-Fungible Tokens collecting and trading.
As a geek and nerd, I always wanted to learn more about developing smart contracts or Dapps and was looking at the current technologies. One that struck my attention was Solana. I was interested in it until the big crash when I found an opportunity to get my foot in while looking at the resilience, technology, and ideology powering the chain. I also saw an opportunity to mix learning Solana development with updating my skills with Typescript, React, Node.js, Rust, and other newer languages, techniques, libraries, and processes. This is from my strong desire to get back to web development and to include web3 development to be more precise.
My experience
As I describe my experience with the NAS Solana Developer Course, please keep in mind that this is my personal opinion. Anything I share here should only provide insight into how I, myself, experienced the course. Even if at times there might be some downsides, I am clear that this course is exceptional and of very high quality and that my own experience does not represent that of the other people taking part in the course. One should not overlook all the amazing things provided in this course solely based on my personal experience.
When I first read about the offer I knew that I wanted to be part of it right away. It was the right moment and the right chain and was offered for free. I was also attracted to the fact that there were no prerequisites for the course. The communication and announcements leading to the course were very good and just added to the excitement. It seemed to be very structured and professional.
Now that I completed the course, I can say that it was a great experience and if I could do it again I know I would. The level of professionalism and the knowledge shared by the trainer is invaluable. It is hard to believe that it was kindly and generously provided for free.
The course
It was with great excitement that I attended the first class. Again everything was very well presented and there was a good vibe that eased up the apprehensions. I remember that the class seemed to be big but left it to the organizer to deal with that. I thought it was not their first one and was right about this assumption.
In the first session, after the presentation of the course curriculum, several minutes were spent figuring out groups when the class got split into rooms. I remember ending up in a room where only I had the camera on. I was also surprised by the fact that most of the other students had no background in software or web development. But again, I thought that with no requirements, the course would be enough for them to learn to a proper level. We were also left to ourselves to organize our group chats using Whatsapp.
As the course progressed there seemed to be more and more confusion about what the groups were tasked with. With the organization lacking as more sessions went on, even if the team allocated funds, I found myself paying from my own SOL to deploy our NFTs with the CandyMachine. Not that it is a lot of money but more for the fact that I could not count on the other students. I offered to transfer the NFTs I created for the 5 members of the groups that send an image but never got any reply. Right after that, our group became less and less active to the point that only the three most advanced students were active for 2 sessions. And in the last 2 sessions, activity in the group dropped dead.
This leads me to think that groups without much guidance and coaching or without having more interactions with the trainers and organizers are not an efficient way to learn. I feel that I have lost many minutes that could have been spent on learning both in the classes and outside the classes.
As the course was moving forward, I had the feeling that I was really learning. From the quality of the teaching and the lead by the trainer, we were advancing steadily and at a good pace. It is always nice to have that feeling when taking courses as it enforces our confidence and makes us eager to move forward.
Later on, as another part of the group activity, we were tasked to create some presentations in Miro for the token we wanted to deploy. I think this was to help people coming in with little background knowledge to organize their thoughts and how to share them working with a team. If I can be honest, this turned out to be a mess. I took the lead for our group and created what was asked only to see it deleted by another student just before the end of the session. I did not bother redoing it on the next session and am glad it stayed this way as it only got used for 2 sessions in the whole course without any follow-up.
Another facet of my experience of the course is the material or I should say the online content provided through the Buildspace course. I found myself dragging behind having to do a lot of debugging and research on problems I was having. I realized that most stemmed from outdated code, libraries, and dependencies and got at some point a bit frustrated with it. It felt like I was spending much more time debugging and trying to figure out how to do it right. I know some more experienced students seemed to have been through in a breeze but I also remember that the course was offered to everyone even without prior knowledge of software and web development. I am sure a lot of people struggled through it and were afraid to share it.
Overall I had a great experience with the course as the content, the trainer, the coordinator were all very good. The format and length of each session were very good. I would not hesitate to recommend this course and the leaders involved to everyone.
What did I learn in the course?
I think that it is easy to make a summary of what I have learned in the course. Although I cannot say that I still fully understand each part but can easily explain the main topics we viewed. I keep it short as the curriculum of the course is very well explained on the NAS page promoting the course. What you see is exactly what you get.
Solana the blockchain
At first, we learned about the structure of the Solana blockchain and how everything is connected. Accounts were thoroughly described and explained. It was a good overview of what Solana is, how it differs from other chains, and how it can make the claims it is advertising such as speed. Although I already have good knowledge of the different chains, I never had a good overview of a chain like the one I got in this section.
The Solana Client
We then moved on to learn about interacting through a simple command line client, Solana-CLI, which was the basis of how interactions and transactions take place on the chain. We use the client to create new tokens and store their data on-chain in a standardized way with the metadata. Although I doubt that a lot of development is done with the client alone, it is nice to try out some interactions and see how transactions are constructed.
NFTs, Sugar CLI, and the Candy Machine
From there, we then moved on to NFTs with the task of creating at first one NFT through the client. This required us to organize our metadata and see how everything is stored online and on the chain. We then moved on to create a Candy Machine that would serve to mint several NFTs using Sugar CLI. Again we learn to organize the automated upload and creation of the metadata for each NFT.
A frontend to our Candy Machine
After we learned how to set up a front-end to our CandyMachine. And with this, we learned how to create a Dapp with a front end that would allow us to stake NFTs using pure Rust language using helpful tools such as the Solana Playground.
Solana Playground, Rust, and Anchor
In the very last part, we learned how to leverage the Playground to ease up the development of a full staking platform for NFTs using Anchor. The platform allows the staking of NFTs to earn points that can be redeemed depending on how long they are staked.
In this part, we also looked at why it is important to secure our apps and on basic ways to do it.
On the side and self-centered learning
Out of the live sessions, I have worked on learning through the Movie Review and the Student Introduction Dapp along with setting up a staking platform from the online Buildspace course. A good overview and recommendations on basic security and why it is important to consider. Many exploits came from unsecured Dapps and hundreds of millions of dollars in crypto have been lost to hacks.
My favorite things about the course
The trainer
That said, outside of the issues with the groups and the content of the Buildspace course, the teaching quality by the trainer James Pacheco was amazing. He was very knowledgeable and explained everything with great care. He was also answering many questions along the way that I am sure helped many in the classes to understand better. It was clear that he is very good at what he does and that on top of that, he really likes to share and teach.
Animation and hosts
The animation from Giorgio through the sessions was very good, energizing, and fun. Just the right amount to keep on track without too much distraction. But still enough to release some tension in learning specific topics of Solana development. He was also very quick to answer questions and direct people in the right direction as he paid full attention to what was happening in the class, both in the live call and the chat.
Progression
The content of the course and its progression from simple client to Rust and finally Anchor was very good. It made much sense and was set in a way that the building blocks kept on adding and interlocking with what was done previously for every new part.
Office hours
Another thing I really liked about the course was the Office Hours. This was a great time to ask questions about what we were doing and find answers to questions or bugs we encountered during the self-development part of the course. I just wished that I didn’t fall behind and be able to participate more in those sessions as they were very valuable. I think they were the main highlights of the course.
Presentation and format
Overall it was the best online course I attended so far. With a well-structured presentation, a hands-on approach, and a very clear and concise format. The coordinator or host and trainer were very engaging and really prompted our interest. I said and will say it again, their level of knowledge in running those classes and teaching those sessions is incredible.
Speakers and live events
As students of the course, we are also granted attendance to live calls with leaders of the Solana ecosystem. This gives great inspiration and insight into upcoming and present projects. We are also allowed to continue to attend those calls which keep the excitement going.
What would I improve for the course?
I will try to list each point I would improve by adding a short description. I did not take into account the complexity of implementing any recommendations I make. I also based them on my personal experience partaking in the course.
Groups
One of the first things that comes to mind is the groups. I would get rid of the group work in favor of a more self-centered approach. The whole class as a group was much more helpful through Whatsapp than each individual group I think and from the feedback I got. Getting rid of groups would also add several precious minutes to the sessions and free up time for learning instead of organizing group efforts through different time zones and schedules I know that for successful groups it might be a good motivation but it did not have any real value in the course and the learning process as only one person really do the work for the group.
If the groups are a must then they really need to be more oversight from the event organizers. Maybe some little extra short sessions for that purpose. These short sessions would also not necessitate the need for a trainer and can be done just by animators such as Giorgio. It would free up time for the trainers and make the course more consistent.
Material
The second point I would like to bring up is the material. There was much less direct use of what is found in the Buildspace course than I imagined. I thought it was needed for the course that was not made clear at the beginning of the course. The courses from Buildspace should also be updated as a lot of the parts have problems and drive away from the learning process. It is enough trying to learn something new without having to research and debug every second lesson. I know it might be part of the learning process but I think it should simply be updated to avoid problems and distractions. Even more, the whole course being live, is very fast-paced and short, and keeping up is already not an easy task. Concerning the material, I also think there could be more connection between it and the sessions. Something like a quick recap and summary of each Core of the Buildspace course or task from the sessions.
Session number and structure
Another thing I would change is the number of sessions. I think there could be more and be more in-depth for each topic. In the last few sessions when things got a lot more complicated with Rust and Anchor, the trainer had to go very fast in order to cover what had to be seen up to a point where we ran out of time to cover what was supposed to be in one session. It also leads the trainer to do a quick copy-paste of blocks of code and just zoom through as fast as possible to meet the goals. Although there is no doubt that James Pachero did an amazing job of explaining every step he took, there is just so much he could do. It was also easy to see from the reaction of the people in the live session that some had lost track of what was happening. I found myself at that point in the second to last session.
Pre-consideration
Something else that could be done to enhance the experience of the people participating in the course would be to provide some prior information. What I mean is that even if there is no prerequisite for the course and only recommendations of some web development knowledge, basic technical skills, or web3 development. I would add information to those who wish to take part in the course. Maybe send some links for people to read on the basics of web development, and programming as well as some web3 concepts as either part of learning new skills or refreshing what is already known. Something they can read and learn from prior to taking the course. It might also help with the rate of dropout from the course as people realize that it might have been over their level or ask for too much commitment.
Something I may consider doing myself is creating a platform for people to install a wallet and getting them to claim a free NFT. This could help future students to get a grasp of the basis of web3 if they never experienced it. Something they can read and learn from prior to taking the course. It might also help with the rate of dropout from the course as people realize that it might have been over their level or ask for too much commitment.
Schedule
I understand that it is not easy to coordinate for people around the world to be available at the same time but I would maybe try to make smaller, more concentrated groups. I am lucky that my normal schedule allows me to work at night but I could not make full use of my presence in the course as the sessions were taking place between 22:00 and 23:30 at night. Again this might be no problem for most but just a recommendation that could make groups and cohorts be more efficient.
Knowledge checks
Better quizzes that reflect more what has been seen in the course. It can provide good insight into the knowledge acquired by participants for both the participants themselves and also as a way to grade how effective the lessons are. I think there is also a place for a final exam either with a passing score or not upon certification.
Certification
I considered not including this part but I am trying to be as thorough as I can. I think that the certification is misleading in the sense that it does not represent competency. Basically, the only requirement is based on attendance and answering a 3-question quiz for 5 out of all the sessions. The reason I bring this up is that even though I attended every single session and optional office hours, answered all the easy quizzes, and even if I have what I consider a strong background. I still do not consider myself a Solana developer and put the bar much higher in regard to my own level of understanding. I think that the main mission to onboard people in the ecosystem is well met but that it should only serve as a pass to get a better chance to learn through some extra courses.
Course flow and content
In regard to my previous certification paragraph, a suggestion I could make would be to split the course into maybe 2 or 3 distinct parts with certification for each level.
- One for the basics like Solana architecture, client, and basic mechanics.
- A second level for NFTs as this topic seems to be something that interests a lot of people from the popularity they are currently having.
- And a third part for programming and development of Dapps, contracts, and such with Rust and Anchor.
This could also give the teaching team more flexibility in regard to resources allocated from the training team and on some other points I brought up in this section.
In conclusion,
I cannot stress enough that the course is exceptionally good, of high quality, and gives a strong starting point to begin developing in Solana. The sessions are well executed and the trainers are very knowledgeable. However, I think that the title of Solana coming with the certificate is wrongly worded. Although I learned a lot I do not consider myself a Solana developer yet as there is just so much that needs to be learned.
The course was very successful in onboarding me in the ecosystem which I think was ultimately the motivation and goal of providing the course from NAS and the Solana Foundation. In this aspect, the teams at NAS and Superteam and all the other parties and speakers involved have delivered much more than promised.