Is the coda is right platform for non tech person?

I would like to start this convention with one simple question.

Q.
Which platform you can choose for your kids for learning code?

Professional software which we experts are using or platform like MIT Scratch where they understand how to code logics are work.


I raise this question because I will try to teach the coda to some of my family members who are not comfortable with spreadsheet or excel. I want them to explore this platform and think as individual problem solver person instead of depending on multiple software for a small task like managing people, task and stock in a single platform with your own freedom. But the problem is they are getting confused when they start to explore the conditions. It will be so easy for them to copy and use the ready-made template from the library. But they start to face the difficulty when trying to build their own stuff from scratch. They know what to do but don’t know how to do.

I personally feel that I give them a professional development software like visual code editor instead of giving them Scratch.

I think the no-code platform definition is being wrong here if the platform doesn’t serve the comfort for that kind of people. Here I am not comparing and judge the coda. Because as a coda user I feel it’s completely power suite software till now as per my experience. But somehow I feel it should be more comfortable for them.

I am not sure where coda is moving right now but if you guys really want to build a platform for all kind of person they you need to think about in this direction.

I :sparkling_heart: coda. And it’s my powerhouse.

1 Like

I think mileage may vary depending on the individual and how invested they are in learning. You could certainly use Coda to create puzzles to be solved or even tutorials to follow, but it isn’t inherently designed to teach someone from the ground up by itself. Since everyone learns differently, there are likely better tools suited for teaching these concepts that will cover the topics in multiple ways in order to maximize learning potential.

I imagine the average Coda user has very basic needs and use-cases. The more advanced users are generally using Coda to create tools for less technically-apt individuals since the overall UI is simple to navigate. This is what drew me into Coda - it was simple enough that I was confident that my team would pick up on how to use it quickly without the need to undergo extensive training.

For me, having a strong background in Excel/Google Sheets along with an understanding of relational databases made it a lot easier to explore more advanced uses for Coda.

5 Likes

Hey @rishi_shah,

With all seriousness — if I were to teach newcomer students some programming again, I would start not with JS or C++/Java or Python, but actually Coda.

  • It gives quick gratification — i.e. no need to set up / code a lot of boilerplate to get a visually gratifying result.
  • It teaches to think with abstractions. Like with OOP, you are dealing with “classes” (types of data — tables in Coda) and “objects” (instances of given types — rows of those tables), but without the complexity of coding.
  • The formula language is pretty much code. One can start with simple calculations (column formulas that map some inputs to a value for each row), and then move onto actions (buttons), which let one build algorithms and familiarize with loops, conditionals etc.
  • Then one can learn more about performance, algorithm optimization etc. It all still applies here.
  • Meanwhile one can learn to build better user experiences by creatively using tables, views, buttons, formatting etc.

There are lots of tricks and techniques to use here. Sure, this is not the “real” conventional programming, but it’s decently enough to educate oneself about how to instruct a computer to do something one needs to do and how things generally work.

I’ve been collecting some of these tips and tricks (community posts by me and others) in this doc. Check out the links:

P.S. I’m a Scratch hater. I really dislike the fact that Scratch is widely regarded as a good entry into programming for kids. I believe newcomers to programming (kids or not) should either a) start with an actual programming language like Java or Python and get used to actually typing code and not moving around colorful blocks, or b) have a simplified environment like Coda where they can actually make something useful like a pocket money tracker for themselves, and not good-for-nothing “games” where sprites move around.

6 Likes

I think I would disagree a little with @Paul_Danyliuk.

If your kid wants the gratifying experience of building something quickly, I think Coda is great. Especially to expose them to the mental models of relational databases and queries. It’s very powerful, and it’s very flexible. It’s like learning Excel, super useful.

That said, Coda is not code. It’s explicitly their goal to make it no-code. If it’s your kid’s goal to learn to code, this is not it. Some ideas can be learned here, but some cannot. In fact, some may be very strange if you haven’t worked with them before.

For example, the FormulaMap formula is quite strange, it’s much better to learn about for loops and then to learn how FormulaMap is a type of for loop than it is to try to learn for loops through FormulaMap.

Here’s how you would count the number of instances of a certain person in a list using a tool like Python (without using defaultdict or collections.Counter):

# the names of users
users = ["Name", "Different Name", ..., "Name"]
# initialize a dictionary to keep track of the frequency a user shows up
counter = dict()
for user in users:
    # if user is not already being tracked, add a new entry
    if counter.get(user, None) is None:
        counter[user] = 1
    # otherwise, increment the existing entry
    else:
        counter[user] += 1

# print a bulleted list
for name, count in counter:
    print(f"- {name} {count}")

In Coda it’s:

Users.Name.Unique().FormulaMap(
    Concatenate(CurrentValue, ' ',
                Todos.Filter(Users.Name=CurrentValue).Count())
).BulletedList()

These are very different mental models.

The first programming language you learn is really important as it frames how you think about the concepts from then onward. Famously Visual Basic Bad and Dijkstra’s Go To Statement Considered Harmful talk about how learning the wrong first programming language can have lasting effects.

I’m not going to argue that Coda is on par with these at all, it’s remarkably elegant. But you don’t do data science in Coda, you don’t build machine learning models in Coda, you don’t build APIs in Coda, you don’t develop video games in Coda, you don’t run embedded systems on Coda, you don’t perform data compression in Coda, etc. (For all of you with counter-examples of people who have done these things in Coda, you know what I mean.)

If your kid wants to learn a programming language, I’d recommend learning:

  • python (best for beginners)
  • C#
  • java
  • javascript
  • ruby

If your kid wants to learn how to build beautiful, sophisticated documents, even web and mobile apps, Coda is great for that!

EDIT: added example of coda vs python and the final, preceding paragraph

3 Likes

There are two different levels to consider and I think Coda has a place in both, but it’s good to note them so advice can be funneled into one or the other.

Learning programming - Coda is not a full coding language like C# or java, and it’s not intended to be. I do feel that Coda does support healthy habits that can be applied across the board.

Learning about systems and how to use them - Here is where Coda has a lot of strengths. Coda helps to develop much healthier habits than most other systems. Spreadsheets don’t have the same healthy habits of understanding what a column is and a row is and how these can be referenced.

So the question is what systems do you want to be in daily to pick up the best habits that are more likely to transfer to your other learnings. If you have kids working on reports for school, collecting data, and managing their projects and homework in something online, Coda is a great tool to build healthy habits and it’s more likely to support other learnings for those digging deeper into various coding languages.

2 Likes

@BenLee

But still when you read the coda formulas docs you need black tea or any high caffeine drinks to focus on learning and understand those formulas.

Where you see the Figma they cook up some amazing stuffs for explaining their features and you really enjoy when you do those tasks. If you really want that kids can enjoy and explore the coda then you need to think in that direction.

Make learning fun!
https://www.figma.com/community/file/809896195877888169