Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: How do I stay on top of AI within software development?
60 points by cyrialize 3 months ago | hide | past | favorite | 30 comments
What are the steps I should be taking now to take advantage of AI as a developer? So far I've been using it to replace Google, generate boilerplate code, generate example code for working with an API, and just bouncing ideas off of it.

I've been collecting several resources that seem useful (besides ChatGPT). I've been wanting to understand these technologies deeper [1, 2, 3].

Are there other resources that are recommended?

Should I be learning more about prompt engineering? [4]

[1]: https://writings.stephenwolfram.com/2023/02/what-is-chatgpt-doing-and-why-does-it-work/

[2]: https://www.fast.ai/

[3]: https://karpathy.ai/zero-to-hero.html

[4]: https://github.com/dair-ai/Prompt-Engineering-Guide

As a developer tools will be created for you. You could make better tools or the next wave of tools.

You could offer the public a different interface on top.

This post tells me you have fear of missing out. Your 3d printer inexperience or ability to create your own smart contract hasn't held you back and neither will this.

Maybe I suffer the same fear as op, but I think this is different.

The cost to create software is rapidly decreasing with tools like this. For most people on HN making software is how they pay their bills.

If I was paying my bills with injection moulding, I would try to be on top of 3D printing as well.

But AI today isn't useful enough to make a dent and AI tomorrow will require different skills. Spending lots of time figuring out good prompt structure etc for current AI will likely not translate well at all to what a good prompt will look like in future models, that will just be waste of space in your brain.

The cost to create software hasn't lowered yet, and it is a stretch to assume new tools (which historically speaking are likely to cost more than they'll deliver, while being used anyway) will definitely make a dent in that. In most organisations software engineering cost doesn't have anything to do with available engineering capacity and is instead overhead from endless folks who want to have input on all decisions, which no amount of AI will solve (well, I guess something like Skynet would...).

You don’t need to get “on top of it” right now. The technology is not ready yet. Give it a few more years.

For now I think copilot is a really powerful prototyping tool. I'm using it as a MVP helper, if something sticks I just rewrite the functionality

Staying on top of AI within software development requires continuous learning and staying updated with the latest trends and advancements in the field. Here are some tips that can help you:

Follow relevant news sources and publications: Stay updated with the latest news and developments in the field of AI by subscribing to relevant news sources and publications such as AI News, MIT Technology Review, and TechCrunch.

Attend conferences and workshops: Attend AI conferences, workshops, and meetups to learn from industry experts, network with peers, and stay updated on the latest advancements in the field.

Join online communities and forums: Join online communities and forums such as GitHub, Reddit, and Stack Overflow, where you can interact with other developers, ask questions, and learn from their experiences.

I've been working with AOT Technologies (https://www.aot-technologies.com/) for past 3 years, I've seen how well they are gelling with the latest AI technologies and how they are promoting the AI Techs among the developers. So the culture and freedom in your organisation is also an important factor.

Highly recommend following or making a list of machine learning accounts on Twitter.

I find that's almost always where news breaks out first if you really want to be on top of things.

Could you share any notable ones, to get started?

Check out the people I'm following, most of them are excellent AI follows https://twitter.com/generatedclay/following

To stay on top of AI within software development, you can attend industry events and conferences, join online communities and forums, read industry publications and research papers, and participate in training and certification programs. Additionally, it's important to stay informed about emerging AI technologies and trends, experiment with different tools and techniques, and collaborate with experts in the field to share knowledge and best practices. Continuous learning and experimentation are key to staying ahead in the rapidly evolving field of AI within software development. You can also check https://www.aot-technologies.com/ for new softwre developement practises with AI.

With the same skepticism you should treat any technology that has lots of VC investment, sounds cool, has concepts that people initially don't understand, and will attract every sort of vulture that has finished picking off the blockchain/ICO/NFT/defi carcass.

You have multiple questions that I'll try to cover. They are rightfully questions that anyone working in software development should have.

> How do I stay on top of AI within software development?

The best way is to apply the same way you do with software development into AI. AI is pretty much just software on different layers. The abstract of AI is still being determined so that's why you may be feeling FOMO now. What's happening now is basically an arms race for AI and testing it in real-time.

> What are the steps I should be taking now to take advantage of AI as a developer?

Gain access with any publicly available products with AI, such as Copilot, ChatGPT, etc. and use them. Another important subset of AI are the developer tools test them out and offer to test and review if they're offering such programs. Your list is already good btw. One thing I haven't seen mentioned is learning the overall fundamentals of AI outside the software we're seeing. Since we're at an arms race moment for AI, there will be a lot of changes understanding the fundamentals then would be a net positive to better iterate learning as releases happen.

> Are there other resources that are recommended?

Many already shared here, I'd take a look at those. If you use Twitter I recommend making a list and actively revisiting it atleast weekly or twice a week.

I've been grappling with this same question myself. Depending on what areas your focused on, you should probably look in different places.

- New product launches: HN, Reddit, Twitter

- Technical ML advancements: arXiv, GitHub, HN

- Building your own projects: Project docs (Stable Diffusion, OpenAI), Andrej Karpathy, GitHub

Shameless plug - I've been asking myself the same question lately, and I've started exploring as much as I can and documenting everything I find: https://generatives.substack.com/

Technology evolution looks like it may become the new rat race. By the time you plan your course of action and skills you need, it is then obsolete before you can complete.

I read the introduction [0] to prompt engineering in the [4] (above), and am confused, isn't it just common sense.

To be honest I didn't dig deep, but the introduction [0] seems obvious stuff. Am I missing something?

[0] https://github.com/dair-ai/Prompt-Engineering-Guide/blob/mai...

haskell, FP

RNNs: http://karpathy.github.io/2015/05/21/rnn-effectiveness/


haskell, composing well FP, succintness is important for complex concepts involved in RNN, and using an RNN as another layer in Grenade is very elegant and this is enabled by the haskell's composability, type-safety and type-classes. This makes RNNs almost fun relative to how painful tensorflow and their imperative kin are to use in python. Albeit tensorflow is more advanced with more advanced features not yet available in weka, grenade, hlearn.

not all neural networks are equal imho: https://www.youtube.com/watch?v=sPjA6lS0GlQ

>> what’s really nice about these functions is that they directly mirror the functions in Layers, in fact, this match works so well that we can embed a Network as a Layer in another Network. Grenade is a dependently typed, high level, artificial neural network library written in Haskell. It’s pretty robust, fast, and expressive, and uses some interesting type level programming techniques which don’t appear to have been used in neural networks before. Grenade does a lot of things right, it’s very expressive in my view, and makes the construction of networks incredibly safe: they essentially can’t crash, and they’ll always be sound. It’s also pretty quick, using BLAS and some hand written C, I’ve found this acceptable for a lot of problems.

or for lispers : http://www.intelligency.org/ai_lisp.php

or for elixir : https://dashbit.co/blog/elixir-and-machine-learning-nx-v0.1

IMHO typed FP is important, but not at DL library level. It's going to be hard to match what projects like JAX offer.

I think FP, and in particular typed FP, is going to be important for code generation. I think successors of ChatGPT will generate much better code partly because they will explicitly target FP languages. FP code is composable, so it's easier to generate small functions that are correct.

Code synthesizers powered by SAT solvers already achieve impressive results, especially when targeting typed FP languages. I imagine that in the not-so-distant future many programmers will be writing type signatures and GPT-like systems will autocomplete function bodies.

This might also make formal verification appealing, because one would like to make sure AI-generated code is correct and also because AI-powered assistants will make it more cost-effective.

Could you elaborate why haskell?

Haskell composing well and type safety makes handling the complex networks of rnns very elegant

Learning about prompt engineering will help, but my guess is- it'll evolve too with newer versions of GPT and it's significance could go down as we get bigger and higher dimension models.

If I'd already developed an application- I would explore ways to make it AI native app. Question I'll be asking myself would be: is there anything in my app that needs prediction, classification or generation? Will my app user gets any benefit out of it?

For example: if HN was my app,I could show more relevant articles based on my history or comments. But does end user really need it? That's answer we should dig in ourself though

Good point, prompt engineering is going to be a very useful skill!

Prompt engineering appears to be similar to quality search skills. Learning how to use a search engine for instance, is a key skill that many engineers don't spend time on. I bet a bunch of people reading now don't know you can make sure a word is not included in a search, e.g.'javascript -coffee' or quote a word to make sure it appears e.g. 'javascript "dom"' or use the OR operator e.g. 'javascript OR ecmascript'. All part of the skill of searching, which I consider to be a "multiplier skill", multiplier skills are something where the value pays large dividends over time, much larger than the time invested. Good prompt engineering is going to be a key skill, both for image generation and text generation.

Right keyword - "multiplier skill"! You have said it right. Prompt engineering can be treated that way.

Using copilot? Trying to be more creative using it.

You will be an architect moving forward with AI, rather than an engineer.

Coding, as writing code by yourself, will be more of a brain-dead job in the future, how to instruct AI to write code for you more efficiently will be a bread bringer.

True but ability to read and understand code will be as important as ever: maybe more important. Your job will be perpetual mini code reviews!

Are we there yet, for ${subj}? Is it even clear that we are driving straight? (Living under a rock.)

If I've been living under a rock for the past 6 months, how do I get started using ML tools in my programming flow?

I would recommend combining AI with the power of blockchain.

Applications are open for YC Summer 2023

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact