This is mainly for Java Script writers, but anyone can contribute! How did you learn JavaScript (or your current programming language)? School, tutorials, etc…? I’m interested because I’m learning JavaScript now but I want to know the best way!
I used to go to a computing lesson and learn programming there. But now i’m too lazy and just read it from the internet.
A Bit in Codeacademy and some by just writing or looking in someone’s scripts.
While not ‘proper’ programming i learnt;
BBCode by myself via trial, error and cheatsheets;
https://drive.google.com/file/d/0B8SPbThbhvLfQkNWQlRPX2RzMFU/edit?usp=sharing
(My internet handle is Grace Darkling)
I also learned HTML by trial, error and examining others work (due to this im guessing my code isn’t the tidiest haha). This allowed me to create automatic installers for my Skyrim mods;
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://qconsulting.ca/fo3/ModConfig5.0.xsd">
<moduleName>Grace Darkling's Nordic Ruins Texture Pack</moduleName>
<installSteps order="Explicit">
<installStep name="Choose an Option">
<optionalFileGroups>
<group name="Options" type="SelectExactlyOne">
<plugins order="Explicit">
<plugin name="Beige Canvas"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Beige Canvas.]]>
</description>
<image path="Screens/BeigeCanvas.jpg"/>
<files>
<file source="Choices\Beige Canvas\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Beige Canvas\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Beige Canvas\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Beige Canvas\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Blue Satin"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Blue Satin.]]>
</description>
<image path="Screens/BlueSatin.jpg"/>
<files>
<file source="Choices\Blue Satin\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Blue Satin\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Blue Satin\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Blue Satin\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Crimson Velvet"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Crimson Velvet.]]>
</description>
<image path="Screens/CrimsonVelvet.jpg"/>
<files>
<file source="Choices\Crimson Velvet\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Crimson Velvet\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Crimson Velvet\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Crimson Velvet\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Green Velvet"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Green Velvet.]]>
</description>
<image path="Screens/GreenVelvet.jpg"/>
<files>
<file source="Choices\Green Velvet\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Green Velvet\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Green Velvet\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Green Velvet\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Leather"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with Leather.]]>
</description>
<image path="Screens/Leather.jpg"/>
<files>
<file source="Choices\Leather\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Leather\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Leather\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Leather\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Peach Satin"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Peach Satin.]]>
</description>
<image path="Screens/PeachSatin.jpg"/>
<files>
<file source="Choices\Peach Satin\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Peach Satin\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Peach Satin\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Peach Satin\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Peacock Feather"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Peacock Feather.]]>
</description>
<image path="Screens/PeacockFeather.jpg"/>
<files>
<file source="Choices\Peacock Feather\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Peacock Feather\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Peacock Feather\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Peacock Feather\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Red Stripe"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Red Stripe Cloth.]]>
</description>
<image path="Screens/RedStripe.jpg"/>
<files>
<file source="Choices\Red Stripe\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Red Stripe\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Red Stripe\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Red Stripe\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Script"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Scripted Cloth.]]>
</description>
<image path="Screens/Script.jpg"/>
<files>
<file source="Choices\Script\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Script\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Script\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Script\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
<plugin name="Silver Fur"> <!-- -->
<description>
<![CDATA[Replaces the Linen Wraps with a Silver Fur.]]>
</description>
<image path="Screens/SilverFur.jpg"/>
<files>
<file source="Choices\Silver Fur\Data\textures\clutter\ruins\ruinslinen01.dds" destination="textures\clutter\ruins\ruinslinen01.dds"/>
<file source="Choices\Silver Fur\Data\textures\clutter\ruins\ruinslinen01_n.dds" destination="textures\clutter\ruins\ruinslinen01_n.dds"/>
<file source="Choices\Silver Fur\Data\textures\clutter\ruins\ruinslinen02.dds" destination="textures\clutter\ruins\ruinslinen02.dds"/>
<file source="Choices\Silver Fur\Data\textures\clutter\ruins\ruinslinen02_n.dds" destination="textures\clutter\ruins\ruinslinen02_n.dds"/>
</files>
<typeDescriptor>
<type name="Optional"/>
</typeDescriptor>
</plugin>
</plugins>
</group>
</optionalFileGroups>
</installStep>
</installSteps>
</config>
Mostly in Codeacademy, However like @Charlie said, through trial and error. I just spent time making scrap projects to improve on my overall skill.
I wrote precisely one automatic installer before i realised that the time it took me to learn and write the code was much longer than to make users download and install manually
Someone should have written an editor for that!
Haha if every community had an @alphabit and a @SirEverard the modding world would be way more advanced!
School (one year I think), and now I learn more by reading other people’s code… no copypasta though. IMO coding itself isn’t that fun but the finished thing is so worth it.